본문 바로가기

SQL/DBA 가이드

Azure Column store demo Columnstore Index in Azure SQL Database - Demo Consider an Order Management application. The key table for this application is ‘orders’ that tracks customer information, purchase price and the order status. It is expected that over time a large number of rows will have the order status as ‘Order Received’ (i.e. the order has been received by the customer. We don’t expect any more changes to the .. 더보기
TOP 10 queries by IO and CPU Top Queries by Average CPU Time SELECT TOP(10) creation_time , last_execution_time , (total_worker_time+0.0)/1000 AS total_worker_time , (total_worker_time+0.0)/(execution_count*1000) AS [AvgCPUTime] , execution_count , st.text FROM sys.dm_exec_query_stats qs CROSS APPLY sys.dm_exec_sql_text(sql_handle) st WHERE total_worker_time > 0 ORDER BY total_worker_time DESC Top Queries by Average IO Time.. 더보기
모든 데이터베이스 전체 공간 및 여유 공간 조회 use tempdb go CREATE TABLE DBO.TBL_DB_SIZE ( ID INT IDENTITY, NAME NVARCHAR(100), RSVD NVARCHAR(50), DATA NVARCHAR(50), INDX NVARCHAR(50), UNUS NVARCHAR(50) ) EXEC SP_MSFOREACHDB ' USE [?] declare @id int -- The object id that takes up space ,@type character(2) -- The object type. ,@pages bigint -- Working variable for size calc. ,@dbname sysname ,@dbsize bigint ,@logsize bigint ,@reservedpages .. 더보기
SQL Server 2005 에서 2012 로 업그레이드 시 오류 Standalone 으로 구성된 테스트 서버에 테스트 목적으로 " SQL Server 2005 설치 → SP4 적용 → 2012 업그레이드 → 인스턴스 삭제 " 를 진행 후, 재설치(위와 같은 순서로)하고 2012 업그레이드 과정에서 아래와 같은 오류가 발생하였다. 다시 시도를 해도 결과는 마찬가지... 제목: Microsoft SQL Server 2012 서비스 팩 1 설치 프로그램------------------------------ 다음 오류가 발생했습니다. 지정한 로컬 그룹이 이미 있습니다. (예외가 발생한 HRESULT: 0x80070563) 실패한 동작을 다시 시도하려면 '다시 시도'를 클릭하고 이 동작을 취소하고 설치를 계속하려면 '취소'를 클릭하십시오. 도움말을 보려면 다음을 클릭하십시오:.. 더보기
MSSQL DBA SQL Server DBA 가이드 DBA라면 이 정도는 알고 있어야 하지 않을까요 !!!이 페이지의 내용데이터베이스 관리 백업과 복구 테이블 관리 시스템 오브젝트 생성 사용자 관리 서버 및 데이터베이스의 정보 확인 성능 모니터링 프로필러 문제 점검 및 해결 DBA의 역할과 책임DBA의 역할시스템과 조직에 따라 DBA의 임무에 차이가 있을 수 있지만 일반적으로 대부분의 DBA는 다음과 같은 작업들을 책임지고 수행해야 하는 임무를 가집니다.설치와 환경설정 - 소프트웨어 설치 - 환경 설정 보안 관리 운영 - 백업과 복원 - 사용자 관리 - 기타 일상적인 운영 업무 서비스 레벨 유지 - 성능 최적화 및 성능 모니터링 - 용량 계획 (Capacity Planning) 시스템 가동 시간 관리 - 시스템 정지 시간.. 더보기
[MSSQL] 2005 이상 LOCK MONITORING SELECT total_elapsed_time, 'Holder' WaitType, command, blocking_session_id, session_id, status, logical_reads, wait_type, wait_time, last_wait_type, wait_resource, text FROM sys.dm_exec_requests r CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) t WHERE session_id IN (SELECT blocking_session_id FROM sys.dm_exec_requests WHERE blocking_session_id>0) AND blocking_session_id=0 UNION ALL SELECT total_.. 더보기
효과적인 모델 현행화 방안 요즘은 곳곳에서 오래된 건축물들을 리모델링 하는 것을 자주 보게 됩니다. 리모델링을 하기 위해서 반드시 있어야 할 것이 무엇일까요? 필자가 건축에 대해서 자세히 알지는 못하지만, 분명히 기존 건축물에 대한 정확한 설계 도면이 필요할 겁니다. 이미 많은 분들이 데이터 모델을 건축의 설계 도면과 비유를 합니다. 비슷한 이치로 기존의 운영중인 정보시스템에 대한 개선이나 고도화 프로젝트를 진행하기 위해서는 현행화 되어 있는 ERD를 필요로 합니다. 물론, 차세대 프로젝트의 경우도 현행 시스템에 대한 분석이 필요하기 때문에 마찬가지 입니다. 필자가 DA 업무를 수행하면서 느낀 부분은 대부분의 신규 시스템이 구축 시에는 분석/설계 단계의 산출물로 테이블 정의서나 ERD를 필수적으로 요구하기 때문에 대부분은 초기 산.. 더보기
DA가 갖춰야 할 사고 방식 DA전문가가 되기 위해서 표준화, 데이터 모델링, SQL튜닝 등 몇 가지 요소 기술들을 습득하는 것도 중요하지만, 필자가 중요하게 생각하는 사고 방식이 몇 가지 있습니다. 첫째, 집합적인 사고 방식을 갖자! 대용량 데이터베이스 튜닝 관련해서 조금 공부하셨던 분들은 많이 들어보셨을 말일 것 같습니다. 절차적인 사고 방식에서 집합적인 사고 방식으로 바꾸는 것이 하루 아침에 바뀌지 않으며, 지속적인 훈련이 필요합니다. 데이터 모델링 시에 엔티티를 선정하고, 엔티티에 대한 집합적 정의를 해두는 것이 무엇보다 중요합니다. 집합적 정의를 명확히 하지 않고 다음 단계로 넘어간다면 데이터 모델링 시에 난관에 빠지는 경우가 많습니다. 데이터 모델링 뿐만 아니라 SQL튜닝 시에도 집합적인 사고 방식은 실제로 많은 도움을 .. 더보기
[DBA 가이드] 테이블 관리 테이블 생성하기 번호 수칙 체크 1 동일한 속성의 데이터 타입은 동일하게 할당합니다. 2 컬럼에 저장되는 데이터의 값과 특성을 고려하여 가장 적합한 데이터 타입을 선택합니다. 3 데이터 무결성을 보장할 수 있도록 적절하게 제약 조건을 정의합니다. 4 항상 값이 저장되는 컬럼에 대해서는 반드시 NOT NULL로 정의합니다. 수칙1. 동일한 속성의 데이터 타입은 일관되게 동일하게 할당합니다. 동일한 속성을 가진 데이터를 서로 다른 테이블들에서 다른 데이터 타입으로 선언한 경우에는 데이터의 불일치 뿐 아니라 성능 저하를 유발할 수도 있으므로 유의하기 바랍니다. 동일한 속성임에도 불구하고 테이블에 따라 데이터 타입이 다른 경우도 있고 데이터 타입은 동일하지만 길이가 다른 경우도 있습니다. 또한 예를 들어, 주민.. 더보기
[DBA 가이드] 백업과 복구 모든 데이터베이스 운영 환경은 반드시 장애 복구에 대한 백업과 복구 계획을 가지고 있어야 합니다. 백업과 복구 계획은 실제 운영 서버를 백업하여 실제와 동일한 상태로 철저히 테스트하고 문서화해야 합니다. 백업과 복구 계획은 응용 프로그램과 운영 체제의 구성 요소를 포함하여, 전체 시스템에 대하여 문서화해야 하며, 발생 가능한 모든 장애 시나리오를 고려하여 문서화해야 합니다. 반드시 규칙적인 테스트를 수행해야 합니다. 계획을 수립할 때에는, 시스템이 얼마동안 다운되어도 무방한지, 어느 정도의 데이터가 유실되어도 되는지에 관련된 리소스 비용과 다운타임, 복구 비용을 고려합니다. 복구 모델 복구 모델은 트랜잭션 로그에 어떤 내용이 저장되었는지를 가리키는 것입니다. SQL Server Standard Editi.. 더보기