본문 바로가기

SQL Server

(81)
sp_procedure_params_rowset sp_procedure_params_rowset ADO 2.5 기준으로 설명을 하자면... (ADO .NET에서도 동일한 원리로 같은 문제가 발생한다.) Command개체의 Parameters컬렉션에 포함된 Refresh 메서드를 사용해 sp를 호출하는 경우, "sp_procedure_params_rowset"이라는 system sp가 먼저 실행되는데.. 이는 호출 할 sp의 메타 데이터를 리턴해 주는 역할을 한다. Refresh 메서드가 주는 잇점이란... 코딩의 간결함이다. 즉, 호출할 sp의 파라미터를 코딩할 때 데이터 타입을 정의하지 않아도 DB로부터 메타데이터를 리턴 받아 자동으로 바인딩해 주기 때문이다. 문제는... 코딩의 편의로 인해 시스템 성능이 희생당하는 것. 물론 성능 문제를 수치로 얘..
DMV를 사용하여 sp_who2 + DBCC Inputbuffer(spid) 작업을 한번에 하기 SELECT A.session_id, B.text FROM sys.dm_exec_connections A CROSS APPLY sys.dm_exec_sql_text(most_recent_sql_handle) B SELECT ISNULL(D.text, '') AS SQLStatement, A.Session_ID SPID, ISNULL(B.status,A.status) AS [Status], A.login_name AS [Login], ISNULL(A.host_name, ' .') AS HostName, ISNULL(CAST(C.BlkBy AS varchar(10)), ' .') AS BlkBy, DB_NAME(B.Database_ID) AS DBName, B.command, ISNULL(B.cpu_time..
데이터베이스 명명 규칙 - Database Naming Conventions 영국계 회사로 이직하고 보니 모든 문서를 영문으로 작성해야하는 부담이 생겼다. ㅡㅡ;; ABSTRACT This document defines the naming rules of database objects. CONVENTIONS All Objects 1. Do not use numbers, spaces, reserved keywords and special characters in the DB object name. Databases 1. For all parts of the database name use Pascal Case. 2. Examples § Account, Statistics, Sale Tables 1. Table names should be plural. 2. For table nam..
ER Studio 사용하기 회사에서 ER/Studio와 관련한 tech talk을 진행 하면서 작성했던 내용이다. 1. 환경 설정 (SQL 2005 기준) Tools > Options를 선택하고 아래와 같이 설정한다. 물론 회사마다 개인마다 차이가 있으니 아래 설정이 꼭 바람직하다고 할 수는 없다. - Entity 이름의 최대 길이 = 128자 (SQL서버의 sysname타입은 nvarchar(128)이기 때문) - Entity에 Attribute를 추가했을 때 기본 적용할 데이터 타입은 integer로 한다. - NULL은 허용하지 않는 것을 기본으로... - 데이터 타입과 NULL허용여부는 Logical탭과 동일 - 기본 데이터 베이스를 SQL 2005로 선택 - 이부분은 사람마다 편하게 느끼는게 다를 듯... 모르면 아래처럼..
Windows Vista에 SQL 2005 Reporting Service 설치 그 동안 잘 쓰던 한글 Windows XP 32bit + 영문 Windows 2003 R2 64bit 조합을 버렸다. 이제 주위에 Vista를 쓰지 않는 사람이 드물다보니... 휴일 집에서 Vista Ultimate K 64bit를 설치하고 이것 저것 기능 살펴보고... 여기까진 좋았는데... SQL 2005 Developer Edition을 설치하다 문제를 만났다. IIS를 설치했는데도... IIS가 없다며 SSRS를 설치할 수 없다는 메세지... ㅡㅡ; 이유는 Vista의 IIS 기본 설치 옵션이 SSRS 구동에는 부족하기 때문인데... 아래와 같이 선택하고 IIS를 설치하면 OK~
테이블 정보 조회 SP 예전에 SQL 2000을 쓸 때는 INFORMATION_SCHEMA View와 시스템 함수를 사용해 만들었는데... 이번에는 SQL 2005에서 제공하는 Catalog View를 사용해봤다. (아래 소스파일 첨부) 현재 DB 컨텍스트의 모든 테이블 조회하기 USE AdventureWorks; GO EXEC dbo.sp_helptable; 현재 DB 컨텍스트의 특정 테이블 조회하기 (테이블 정보 + 체크 제약조건 + 상위 10개 행) USE AdventureWorks; GO EXEC dbo.sp_helptable N'Purchasing', N'ProductVendor'; EXEC dbo.sp_helptable NULL, N'ProductVendor'; 현재 DB 컨텍스트의 특정 스키마가 소유한 모든 테이블..
SQL 2005 기본 템플릿 변경 SQL 2005에서 SSMS를 띄우고 템플릿 탐색창을 열면 꽤 많은 템플릿을 볼 수 있다. 뭐 많이 주는걸 나쁘게 생각하진 않지만... 회사마다 사용하는 템플릿이 따로 있게마련이라, 기본 제공되는 템플릿은 잘 쓰지 않게된다. SQL 2000까지만해도 기본 템플릿 파일 (*.tpl)은 폴더에서 지워버리기만 하면 그만이었다. 대신 회사에서 사용하는 템플릿을 넣으면 QA에서 그것만 보였는데... SQL 2005에서는... 기본 템플릿을 아무리 지워도 SSMS를 띄우면 다시 복구되어 버린다. 그래서 찾아낸 방법은... 복구에 사용되는 원본 폴더에서 삭제하는 거... ㅎㅎ C:\Program Files\Microsoft SQL Server\90\Tools\binn\VSShell\Common7\IDE\sqlwork..
SQL 서버 통합 요즘 가상 머신을 이용한 서버 통합 이슈가 뜨고 있어서인지 SQL Magazine에 SQL 서버 통합 방법에 대한 기사가 실렸다. 언급된 3가지 방법에 대해 간단히 정리하면 다음과 같다. 1. SQL 서버를 기본값으로 설치하고 모든 Database를 모두 이곳에 생성한다. 이 방법의 장점은 구성하기 쉽다는 것외에는 거의 없다. 같은 이름의 Database가 있어도 안되고, Linked Server로 구성하여 사용할 수도 없고, DTS Package 같은 경우 실 서비스망에서 작성하게 된다. 2. VM을 사용한다. 개발 환경과 실 서비스 환경을 거의 동일하게 만들어 줄 수 있다는 장점이 있다. 단점으로는... - 매번 OS와 SQL 서버를 설치 관리해야 한다. - VM을 사용함으로 인해 성능 감소가 통상 ..