TVP(테이블 반환 매개 변수)는 Table 구조의 Type을 생성 후 해당 타입을 매개변수 형태로 사용합니다. 제가 사용한 경우는 WHERE 절에 사용되는 스칼라 함수 내에서 CTE가 따로 돌고 있는 상황이었습니다. 꼭 사용해야 하는 경우라서. 프러시저나 함수등에 매개변수 형태도 던져 사용하거나 반환값으로 사용 가능합니다. 자세한 사항은 아래 링크를 확인해 주세요. https://msdn.microsoft.com/ko-kr/library/bb510489(v=sql.105).aspx USE AdventureWorks2008R2; GO /* Create a table type. */ CREATE TYPE LocationTableType AS TABLE ( LocationName VARCHAR(50) , C..
Database
MSSQL 에서 CRUD 기본 스크립트를 생성해 주는 프러시저 입니다. 변수로 테이블을 받게 해두었는데 그냥 호출 할 경우 전체 테이블에 대한 생성문이 메세지 창에 보여 집니다.(SSMS) C / U : 한개의 프러시저로 작성되어 있습니다. PK를 WHERE 절로 사용하며 IDentity 타입 필드는 제외 처리 되어 있습니다. D : 매개변수는 키가 있는 경우 기본 키가 사용되고 없는 경우 '키 없음' 이라는 구문이 들어가니 사용하실때 참고 하시면 됩니다. R : 매개변수를 사용하지 않습니다. ( D는 키가 없는 경우 프러시저를 호출하여도 데이터에 반영되지 않습니다. ) 접두어 를 프러시저 내부에 두었습니다. 필요하실 경우 수정해서 사용하시면 됩니다. (프러시저를 실행한다고 해서 자동으로 생성되지 않으..
DB를 관리/운영 하다보면 점점 DB가 느려짐을 느끼는데... 여러가지가 있지만 DB 측면에서만 확인 해 보자면 아래와 같은 원인을 찾을 수 있다. 1) Data 누적에 따른 IO 증가 - Data가 늘어난다고 해서 비례해서 속도가 느려지는건 아니다. 인덱스가 정상적으로 잡혀 있고 정상적인 쿼리 계획에 의한 실행이라면 거의 동일한 속도를 유지할수 있다. 인덱스 관리, 쿼리 확인 하여 IO 높은 쿼리를 수정하는 등의 지속적인 관리 필요 2) 인덱스 단편화에 따른 실행비용 증가 - 쿼리 실행계획 확인했는데 모두 seek로 클러스터, 넌클러스터 인덱스를 잘 타고 있는데도 인덱스의 단편화 현상이 심화 되어 속도 지연현상이 일어날 수 있다. 보통 인덱스가 10% 이상 깨지면 재구성을 해줘야 한다고 함 o 인덱스 ..
MS-SQL 2000 ~ 2008 까지 Table을 자동으로 생성할 수 있는 스크립트 입니다. 스크립트에는 2005까지만 되어 있으나 2005를 2008로 변경하여 사용하시면 됩니다. 오래전에 모아둔 자료라 출처를 확인 할 수 없습니다. 출처를 아시는 분께서는 댓글 부탁드립니다. Declare @i Int, @maxi Int Declare @j Int, @maxj Int Declare @sr int Declare @Output varchar(4000) --Declare @tmpOutput varchar(max) Declare @SqlVersion varchar(5) Declare @last varchar(155), @current varchar(255), @typ varchar(255), @descrip..