SQL Server
-
Hash Match(Aggregate)와 Stream Aggregate in SQL Server 2008SQL Server/실행계획 연산자 2011. 7. 11. 18:48
안녕하세요. 이스트럭(강동운) 입니다. 이번에 알아볼 주제는 Hash Match(Aggregate) 와 Stream Aggregate 입니다. 두개는 집계를 하는 실행 계획 연산자 입니다. 따라서.. 집계를 하는.. SUM, COUNT 또는 GROUP BY 등이 이들 연산자를 사용하게 됩니다. 두가지 연산자의 큰 차이점은.. 아래 두가지로 구분이 됩니다. 바로.. 정렬이 보장된다(Stream Aggregate) 와.. 정렬이 보장되지 않는다.(Hash Match(Aggregate)) 입니다. 예제를 살펴보도록 하겠습니다. 테스트 VERSION Microsoft SQL Server 2008 (SP1) - 10.0.2531.0 (X64) Mar 29 2009 10:11:52 Copyright (c) 1988..
-
SELECT INTO 와 FILE GROUPSQL Server 2011. 6. 14. 18:06
안녕하세요. 이스트럭(강동운) 입니다. ^^ 오늘 포스팅의 주제는.. 바로 SELECT INTO 입니다. SELECT INTO시에 원하는 파일그룹으로 복사본 테이블을 다른 파일 그룹으로 넘기는 방법은 어떤게 있을까요??.. 결론부터 말씀드리면.. 데이타베이스의 기본 파일그룹을 변경하면 됩니다. 간단한 예제를 한번 살펴보시죠~! use tempdb go if exists (select * from sys.sysdatabases where name = 'testdb') begin alter database testdb set single_user with rollback immediate; drop database testdb end go --//testdb 생성 create database testdb g..
-
sa 비밀번호를 잊어먹었을 때 대처방법SQL Server 2011. 6. 13. 16:43
SA 비밀번호를 까먹었을때 대처법은 여러가지가 있습니다. 일단 윈도우계정이 sysadmin인 경우에는.. 윈도우 계정으로 로그인해서 비밀번호를 변경하게 됩니다. 하지만.. 윈도우 계정이 뚫려버리면 SQL 도 같이 뚫리기 때문에.. 주로 윈도우 계정을 삭제해서 접근할 수 없도록 설정을 하게됩니다. 만약 위와 같이.. 윈도우 계정도 삭제하고, sa 비밀번호 조차 기억나지 않을때는 어떻게 해야하는지에 대해서 간단히 정리해봤습니다. 첨고: 보안상 sa를 쓰는것은 좋지 않습니다. sa로 대체할 아이디를 생성해서 sysadmin 권하는 주는 것이 바람직합니다. 결론부터 말씀드리면.. 아래와 같습니다. 1. SQL Server를 중지 후 싱글유저 모드로 시작한다. 2. 싱글모드로 시작하게 되면 Administrato..
-
SMALLDATETIME 과 DATETIME의 아키텍처SQL Server/Architecture 2011. 4. 21. 18:43
참고 URL: http://msdn.microsoft.com/ko-kr/library/ms187819(SQL.90).aspx 아키텍처를 좀더 자세히 분석해보겠습니다. DATETIME = >8 byte (앞에 4 byte 는 1900-01-01 이후의 날짜 수, 그 후에 4 byte는 1/300초의 수) SMALLLDATETIME => 4byte(앞에 2byte 는 1900-01-01 이후의 날짜 수, 그 후에 2byte는 00:00:00 ~ 해당일자의 분) DECLARE @DATETIMEDATETIME ,@SMALLDATETIMESMALLDATETIME SET @DATETIME = '2010-10-20 13:23:57.777' SET @SMALLDATETIME = '2010-10-20 13:23:57.7..
-
문서화 되지 않은 %%lockres%% 컬럼SQL Server/Architecture 2011. 4. 21. 18:42
안녕하세요. 비전팀 1기 강동운입니다. 이번에는 문서화되지 않은 %%lockres%% 컬럼에 대해 소개해드리겠습니다. 이 컬럼은 Lock 과 Deadlock을 조사하는데 사용됩니다. 이 값은 테이블에 Clustered Index 존재의 여부에 따라서 두가지 형태로 존재할 수 있습니다. 1. RID 형태(Clustered Index가 존재하지 않는 경우) 2. Hash 값(Clustered Index가 존재하는 경우) 예제를 통해서 살펴보도록 하겠습니다. IF OBJECT_ID('TblTest','U') IS NOT NULL DROP TABLE TblTest GO CREATE TABLE TblTest ( IDX INT IDENTITY(1,1) NOT NULL , DATA CHAR(500) ) GO --//..
-
SQL Server에서 View의 SCHEMABINDING 이란?SQL Server/Architecture 2011. 4. 21. 18:41
안녕하세요. 비전팀 1기 강동운입니다. 이번에는 뷰를 생성할 때 WITH SCHEMABINDING 옵션에 대해서 얘기를 꺼내볼까 합니다. BOL에 찾아보면... SCHEMABINDING기본 테이블의 스키마에 뷰를 바인딩합니다. SCHEMABINDING을 지정하면 뷰 정의에 영향을 미치는 방법으로 기본 테이블을 수정할 수 없습니다. 뷰 정의 자체를 먼저 수정하거나 삭제하여 수정할 테이블에 대해 종속성을 제거해야 합니다. SCHEMABINDING을 사용하는 경우 select_statement에 참조되는 테이블, 뷰 또는 사용자 정의 함수의 두 부분으로 구성된 이름(schema.object)이 있어야 합니다. 참조된 개체는 모두 같은 데이터베이스에 있어야 합니다. SCHEMABINDING 절로 만든 뷰에서 사..
-
Extent 2번째 이야기.. 그리고 IAM(Index Allocation Map)SQL Server/Architecture 2011. 4. 21. 18:39
안녕하세요. 비전팀 1기 강동운입니다. 요즘 데이터베이스 아키텍처 부분이 푹 빠져있습니다 ^^.. 이번에는 IAM 과 저번 설명드린 Extent의 부가적인 설명을 드리기 위해 작성하게 되었습니다. IAM은.. Index Allocation Map 의 약자이며... 테이블에 인덱스(또는 힙)당 기본적으로 한개씩 만들어지게 됩니다. (인덱스가 하나도 없는 경우에도.. Heap에 대해서 하나의 IAM 페이지가 생성이 됩니다.) (IAM은 인덱스(또는 힙)당 두개 이상이 될 수도 있는데요.. 그 부분은 이 글 후반부에 설명을 드리겠습니다.) 즉.. IAM을 통해 인덱스(또는 힙)가 체인으로 부모로써 연결하는 연결고리가 되는 셈이죠.. 예를들어... 1. 테이블에 인덱스 가 없다면.. (Heap만 존재하겠죠~~)..
-
Uniform Extent 와 Mixed ExtentSQL Server/Architecture 2011. 4. 21. 18:38
안녕하세요. SQLER 비전팀 1기 강동운입니다. 이번에는 Extent에 관련되서 얘기를 꺼내볼까 합니다. SQL Server에서 Extent는 공간 관리의 최소 단위라고 합니다. 그리고 8개의 page가 하나의 Extent안에 들어있다고 합니다. 하나의 Page가 8kb 이므로.. 하나의 Extent는 64kb 를 관리할 수 있게 됩니다. SQL Server에서 Extent는 두가지 형태로 존재됩니다. 1. Mixed Extent(혼합 익스텐트) 2. Uniform Extent(균일 익스텐트) Mixed Extent는 말그대로 혼합 익스텐트 입니다. 아까 말씀드렸다 싶이 하나의 Extent는 8개의 page가 존재한다고 했습니다. 하지만 이 Mixed Extent는 같은 개체가 아닌 다른 개체의 pag..