본문 바로가기

SQL Server

(82)
[SQL Server] IntelliSense 기능 Visual Studio에서는 제공되었던 IntelliSense 기능이 SQL Server 2008부터 제공된다.이는 글자의 일부만 입력해도 그와 관련되는 글자들이 나타나는 것이다.잘 활용하면 입력도 빨라지고 오타도 많이 줄어드는 장점이 있다. IntelliSense 기능에는 다음과 같은 기능들이 있다. use 문을 입력할 때 데이터베이스 목록이 자동으로 표시되며 원하는 데이터베이스를 눌러 선택할 수 있다. 변수를 선언하고 값을 지정하는 SET문 다음에 @를 입력하면 자동으로 변수 목록이 나타나고 선택할 수 있다. 선언하지 않은 변수 사용시 빨간색 줄이 그어지면서 오류를 인식시켜준다. 함수를 사용할 때 함수명을 입력하고 ( 를 입력하면 필요한 매개변수의 정보가 표시된다. FROM 절에 Sales 스키마를..
[SQL Server] SQL Server 2008의 새로운 날짜/시간 데이터 형식 SQL Server 2008에서는 아래와 같은 새로운 데이터 형식을 제공하고 있다. 날짜/시간 데이터 형식 : DATE, TIME, DATETIME2, DATETIMEOFFSET 계층적 데이터 형식 : HIERARCHYID 공간 데이터 형식 : GEOGRAPHY, GEOMETRY 이 데이터 형식 중 날짜/시간 데이터 형식에 대하여 살펴보겠다. DATE 데이터 형식은 시간 구성 요소 없이 날짜를 저장한다. 데이터의 범위는 00011년 1월 1월부터 9999년 12월 31일까지이다. TIME 데이터 형식은 날짜 구성 요소 없이 시간을 저장한다. 이 데이터 형식은 24시간 형식에 기반을 두므로 지원되는 범위는 00:00:00.0000000부터 23:59:59.9999999까지이다. DATETIME2 데이터 형..
[SQL Server] 스파스 열 (Sparse Column) 스파스 열(Sparse Column)은 SQL Server 2008의 새로운 기능으로 'NULL 값에 대해 최적화된 저장소가 있는 일반 열'로 정의할 수 있다. NULL 값이 많이 들어갈 것으로 예상되는 열을 스파스 열로 지정해 놓을 경우 많은 공간 절약 효과를 볼 수 있다. 하지만 NULL 값이 별로 없는 열이라면 오히려 그 크기가 더 필요해진다. 즉, 스파스 열로 지정된 열에 NULL 값을 입력하면 지정된 데이터 크기보다 적게 공간을 차지하지만, 반대로 실제 값이 입력되면 오히려 공간을 더 차지하게 된다. SQL Server 2008에서 한 테이블 당 최대 1,024개의 컬럼을 생성할 수 있다. 하지만 스파스 열은 여기에 포함되지 않고, 스파스 열이 생성할 수 있는 최대 개수는 100,000개이다. ..
[SQL Server] Hot Add 메모리 'Hot add 메모리'는 동일한 개념으로 시스템이 운영 중인 상태에서 메모리(RAM)을 추가하는 기능을 말한다. SQL Server 2008 이전 버전에서도 지원되는 기능이다. Hot add Memory를 위해서는 다음의 사항이 충족되어야 한다. 1. 하드웨어에서 Hot Add 메모리를 지원해야 한다. 2. 운영체제는 Windows Server 2003/2008 Enterprise 또는 Datacenter 에디션이 설치되어 있어야 한다. 3. AWE(Address Windowing Extensions) 설정된 32bit SQL Server Enterprise 에디션이거나, 64bit SQL Server Enterprise 에디션이어야 한다.
[SQL Server] Hot Add CPU SQL Server 2005에서 Hot Add Memory를 소개하였고, SQL Server 2008에서 Hot Add CPU를 제공하고 있다. Hot Add CPU는 시스템이 운영중인 상태에서 다운타임 없이 CPU를 추가할 수 있는 기능이다. 이 기능을 이용하기 위해 다음의 사항이 충족되어야 한다. 1. 하드웨어에서 Hot Add CPU를 지원해야 한다. 2. 64비트 버전의 Windows Server 2008 Datacenter 또는 Itanium 기반 시스템 운영체제용 Windows Server 2008 Enterprise Edition이 설치되어 있어야 한다. 3. SQL Server 2008 Enterprise 이상이 설치되어 있어야 한다. 4. SQL Server는 소프트 NUMA를 사용하도록..
[SQL Server] ROLLUP 연산자가 지원되지 않는 버전에서 총합계 구하기 통계를 보여줄 때 ROLLUP 연산자를 사용하면 쉽게 총합계를 보여줄 수 있다. 하지만 ROLLUP 연산자가 지원되지 않는 버전이라면 어떻게 총합계를 보여줘야할까? 2008 버전에서 열심히 ROLLUP 연산자를 이용하여 작업을 하였다. 하지만 작업한 것을 적용해야 할 서버가 2005 버전이라는 것을 뒤늦게 알았다. ROLLUP 연산자는 2008 버전에서 생긴 기능으로 당연히 2005 버전에서는 사용할 수 없다. 먼저 2008 버전 이상에서 ROLLUP 연산자를 이용한 결과를 확인해 보자. CREATE TABLE dbo.TEST_STAT ( REG_DATE CHAR(10) , USER_CNT INT , ORDER_CNT INT , TOTAL_CASH INT ) GO INSERT INTO dbo.TEST_S..
[SQL Server] 모든 동적 뷰와 함수를 확인하기 위한 쿼리 DMV(동적 관리 뷰, Dynamic Management Views)는 성능 관련 정보를 수집하기 위한 유용한 도구이다. 동적 관리 뷰와 함수는 SQL Server를 모니터링하고, 문제점을 진단하며, 성능을 최적화하기 위한 용도로 사용할 수 있다. 모든 동적 관리 뷰와 함수를 확인하기 위한 쿼리 SELECT N'SYS.' + NAME AS NAME, TYPE_DESC FROM SYS.SYSTEM_OBJECTS WHERE NAME LIKE N'DM[_]%' ORDER BY NAME 136개의 동적 관리 뷰와 함수를 확인할 수 있다. 참고 : 실전 SQL Server MVP 61
[SQL Server] 가장 조각이 많이 난 인덱스 TOP 10 지속적인 데이터 변경 작업이나 데이터 입력에 따른 반복되는 페이지 분할과 같은 문제로 인해 인덱스에 조각화가 발생하고, 이는 당연히 인덱스를 통한 조회 성능이 저하되는 결과를 가져온다. 이런 경우 인덱스를 다시 구성(조각모음)하거나 다시 작성해서 조각화를 제거할 수 있다. sys.dm_db_index_physical_stats 동적 관리 함수를 조회해서 조각화가 심한 인덱스를 확인할 수 있다. -- 가장 조각이 많이 난 인덱스 TOP 10 SELECT TOP 10 DB_NAME() AS 'DatabaseName' , OBJECT_NAME(S.OBJECT_ID) AS 'TableName' , I.NAME AS 'IndexName' , ROUND(AVG_FRAGMENTATION_IN_PERCENT, 2) A..