분류 전체보기 132

디스크 구조 와 동작방식

예전에 정리한 문서지만 공유차원에서 올려봅니다.^^ 데이터베이스와 밀접한 관련이 있는 데이터 저장매체 인 디스크구조 및 동작방식에 대해 알아보자. 디스크는 자기 디스크 플래터로 구성돼있으며 데이터를 트랙에 자기적으로 저장한다. 디스크 안팎으로 움직이는 전기자에 끝에 부착된 헤드가 회전하는 디스크를 읽고 쓰는데 플래터당 하나의 헤드가 존재해 플래터 집합인 디스크는 여러 헤드(전기자에 부착된)를 가질 수 있다. 또한 헤드와 전기자는 모두 연결돼있어 모든 헤드는 데이터를 동시에 트랙에 읽고 쓴다. 디스크 헤드가 섹터의 데이터를 읽기 위해서는 섹터가 헤드 바로 아래에 있어야 하는데, 디스크는 항상 회전하므로 섹터가 그 위치에 올 때까지 기다려야 한다. 이때 디스크가 데이터를 읽을 수 있는 위치로 회전하는데 걸리..

기타 기술자료 2010.11.22

MSSQL2008 개체 종속성 식별

비지니스에 대한 요구사항을 수용할 준비는 언제든 돼있어야 하고, 그에 대한 영향도분석에 있어서 첫번째 절차는 아마도 이런게 아닐까 생각됩니다. 요구사항 혹은 구조적인 문제로 스키마가 변경돼야 할때, 변경해야할 스키마의 종속개체들을 확인하고 종속개체들까지 같이 수정해야 합니다. 이를 위해 SQL2008에서 종속개체 확인을 위한 DMF(Dynamic Management Functions) 를 지원합니다. sys.dm_sql_referenced_entities 확인가능한 참조유형 - 스키마 바운드 또는 비스키마 바운드 엔터티 - 데이터베이스 수준 DDL 트리거 - 서버 수준 DDL 트리거 sys.dm_sql_referencing_entities 확인가능한 참조유형 - 스키마 바운드 또는 비스키마 바운드 엔터티..

MS-SQL Server 2010.11.22

Index Uniquifier 포함여부

인덱스 환경에 따라 인덱스페이지의 Uniquifier 포함여부에 대해 확인하는 테스트를 해보겠습니다. (예전 지인의 아티클을 보고 테스트했던 내용입니다.) DROP DATABASE Internal GO CREATE DATABASE Internal GO USE Internal GO /* 추적 설정 */ DBCC TRACEON (3604) -- DBCC TRACEON (2520) -- sql server 2000 DBCC TRACEON (2588) -- sql server 2008 DBCC HELP('?') DBCC HELP('page') DBCC HELP('ind') Syntax: dbcc page ( {'dbname' | dbid}, filenum, pagenum [, printopt={0|1|2|3} ..

MS-SQL Server 2010.11.22

datetime 형태 잘 사용해보기 (trimming techniques)

datetime 타입을 가지고 group by 할때 날짜만 가지고 한다거나 할 경우 일반적으로 아래와 같이 많이들 사용하셨죠... (저도 역시나... ^^) select convert(varchar(10), getdate(), 120) 블로그를 보다가 매우 간단하나 날짜별 집계를 할때 성능향상을 시켜주는 내용을 찾아서 공유드립니다. 백마디 말 보다는 바로 테스트를 진행해보도록 하겠습니다. 1. 로그 테이블를 테스트 기준으로 잡았습니다. 건수는 약 200만건입니다. select count(*) from dbo.LogTable WITH (nolock) Result> 1995925 2-1. 일반적인 방식으로 각 날짜별 플레이횟수를 수집 : CPU 시간 = 3857ms set statistics io on se..

MS-SQL Server 2010.11.19

SQL Server 2012 (Denali) Order by 절의 새로운 기능 추가

SQL Server 2005부터 row_number 함수가 제공됨으로써 오라클처럼 서브쿼리를 활용하여 게시판의 페이징 쿼리를 만들 수 있게 되었습니다. row_number를 사용할 경우, 서브쿼리를 써야하기 때문에 복잡하게 보인다는 점인데요... 이번에 SQL Server 2011부터 order by 절에 새로운 기능이 추가되어짐으로써 좀 더 간단한 쿼리로 페이징 구현이 가능하게 되어 소개드립니다. 과거 row_number를 사용한 것과 성능차이는 없는지 테스트를 통해서 슬쩍 살펴보도록 하겠습니다. --@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ --@@ 페이징 테스트할 임시 테이블 생성 create table tab01 ( col01 ..

MS-SQL Server 2010.11.15

SQL 사용자 권한 맵

SQL Server 2008에서 권한 부분을 보다가 이렇게 정리하면 좀더 이해가 편할 듯 하여 정리해 봤습니다. 한번에 정리하고 검토 없이 올린 내용이니 잘못된 내용 있으면 피드백 주시면 수정 하도록 하겠습니다. DATABASE에만 줄 수 있는 권한을 모든 DB에 주기 위해 아래의 쿼리로 만들어서 실행하면 된다. select case when b.copy = 1 then 'use ' + name + ';' else 'grant showplan to [계정명];' end from sys.sysdatabases a with(nolock) cross join (select 1 as copy union all select 2) b order by a.name, b.copy

MS-SQL Server 2009.11.25

JOB 로그의 처리 시간대별 확인하기

SQL 2005 이상에서 JOB 로그를 바탕으로 언제 시작해서 언제 끝났는지 확인하기 위한 쿼리를 만들어 봤습니다. 비는 시간 잘 찾아서 새로운 JOB을 배치할 때 사용하면 좋을 것으로 예상 합니다. ^^ -- 하루치데이터입력 declare @StartDate datetime, @EndDate datetime, @TmpDate datetime select @StartDate = '2009-11-18', @EndDate = '2009-11-19' select @TmpDate = @StartDate set nocount on if not exists(select * from tempdb.dbo.sysobjects where name like '#BaseTime%') begin create table #Bas..

MS-SQL Server 2009.11.19

[DMV] 파티션 할당 정보 확인하기

파티션 구성 정보를 조회하면서 파티션의 사이즈 및 압축 정보까지 한꺼 번에 볼 수 있도록 수정 하였음. select a.PartitionName, a.FuncName, a.PartitionCount, a.Type, a.Value, a.Equality, a.Destnation_id, c.name as 'FileGroupName' , object_name(d.object_id) as 'ObjectName' , d.used_page_count * 8 as 'Total Used(KB)' , d.reserved_page_count * 8 as 'Total Reserved(KB)' , row_count as 'RowCount' , data_compression_desc from ( select a.name as '..

MS-SQL DMV 2009.08.18

SSD IO 성능 테스트 - IODrive

얼마 전 IODrive를 지엔오테크롤로지의 협찬을 받아서 일주일 동안 IO관련 테스트를 진행하였습니다. 서버용 제품으로, 벤더에서 제공하는 스펙만 본다면 기존에 테스트 했던 버텍스 또는 엠트론 보다 월등히 뛰어난 IOPS 수치를 보여주고 있습니다. 또한 특이한 것은 다른 SSD와 다르게 SATA 인터페이스가 아닌 PCI-E 인터페이스를 채택 하였습니다. 역시 서버용 제품이라, 가격은 생각보다 비쌌지만 서버에서 사용하는 엔터프라이즈 SAS디스크의 가격도 수십 만원에서 수백 만원 정도하기에, 적은 공간에 아주 많은 IOPS를 요구하는 비즈니스라면 일반 DISK를 사용하는 것 보다 적은 비용으로 구현 할 수 있을 것 입니다. 이번에 테스트한 제품은 IODrive 80GB 입니다. 스펙 상으로는 읽기, 쓰기에 ..

MS-SQL Server 2009.07.10

MSSQL Server를 사용하기 위한 Windows Server 설정

[프로세서 사용 계획 및 메모리 사용 계획] 프로세서 사용 계획: 백그라운드 서비스(스레드를 좀더 길게 사용하여 단일 프로그램의 효율을 높이기 위할 때 사용) 메모리 사용 계획: 프로그램(OS 시스템 영역 보다는 그 위에 올라가는 App 위주로 사용). MSSQL이나 IIS등도 OS 입장에서는 App 이다. [네트워크용 파일 및 프린터 공유 등록 정보] 제일 밑에 있는 네트워크 응용 프로그램을 위해 데이터 처리량 최대화 선택 [참고 URL] http://technet.microsoft.com/en-us/library/cc784562(WS.10).aspx

기타 기술자료 2009.07.10