목록DATA/SQLServer (19)
Data Modeling Evangelist Kaien Kim's Blog
tempdb는 단어 그대로 임시로 사용하는 DB이다. 즉 MASTER DB처럼 항상 사용하는 것이 아니라 임시테이블을 만든다거나, 대형쿼리, 다단계쿼리 또는 SELECT시 order by, group by, sorting을 할 때 주로 사용된다. 임시로 사용된다는 것은 이곳에 있는 데이터베이스 객체도 영구적이 아니라는 말도 된다. 즉, SQL Service가 시작될 때마다 자동적으로 지워지고 다시만들어진다. 그래서 당연히 여기에다가 테이블등의 객체를 만들면 안된다. -- 각각의 데이터와 로그파일을 한 번에 하나씩 새로운 위치로 이동한다. USE master GO ALTER DATABASE tempdb MODIFY FILE ( NAME= logical_name, FILENAME="new_path/file_..
-- 특정테이블의 컬럼정보가져오기 select * FROM INFORMATION_SCHEMA.COLUMNS where table_name = 'Customer' order by table_name,ordinal_position -- 특정테이블의 PK정보가져오기 select constraint_name from information_schema.table_constraints where constraint_type='PRIMARY KEY' and table_name = 'Customer' -- 특정테이블의 FK정보가져오기 select constraint_name from information_schema.table_constraints where constraint_type='FOREIGN KEY' and..
서버상에서 디스크공간을 알아내는 방법은 아래와 같다. Master.dbo.xp_fixeddrives
select col.table_catalog, col.table_name, col.column_name, obj2.name as SP_Name, obj2.id as SP_ID from sysdepends dep, sysobjects obj, sysobjects obj2, information_schema.columns col where dep.depid = obj.id and dep.id = obj2.id and obj.name = col.table_name and col.column_name = 'ssn' and obj2.xtype='P' group by col.table_catalog, col.table_name, col.column_name, obj2.name, obj2.id etc... sp_ta..
Syntax sp_changeobjectowner [ @objname = ] 'object' , [ @newowner = ] 'owner' Arguments [ @objname = ] 'object' Is the name of an existing table, view, user-defined function, or stored procedure in the current database. object is an nvarchar(776), with no default. object can be qualified with the owner of the existing object, in the form existing_owner.object if the schema and its owner have the..
어디서 퍼왔는데...출처가 생각이 안나네요^^;; 참고하세요~ ... -- 테이블명으로 테이블들 검색 sp_tables '%테이블명%' -- 컬럼명 검색 sp_columns @table_name='%', @column_name='%컬럼명%' -- 실행계획결과를 표로 보기 set statistics profile on -- 테이블의 여러정보(인덱스 등등) 보기 테이블 선택한 상태에서 alt + f1 누름 (이병화가 알려줌 -_-) -- 뷰 또는 프로시저 스키마 보기 sp_helptext 뷰또는 프로시저이름 -- 지정한 테이블의 데이터와 인덱스에 대한 조각화 정보를 표시 DBCC SHOWCONTIG(테이블명) -- 특정 단어가 들어간 뷰/프로시저/펑션/트리거 찾기 -- V(뷰), P(프로시저), FN(펑션)..
정리가 잘되있어 퍼왔습니다. 역시 출처는 기억이...^^; ☞ ** Trigger (트리거)** 트리거는 성능향상을 위한 도구라기 보다는, 비즈니스 규칙을 효과적으로 데이터베이스 서버 계층에 구현하게 해 주는 기능. 수동으로 여러 가지 작업을 하나의 트랜잭션으로 묶어서 실행 해야하거나, 함께 이루어져야 할 일련의 작업들을 논리적으로 묶어야 할 필요가 있을 때는 트리거보다 더 좋은 대안은 없다. 사실 트리거를 쓰면 간단하게 해결될 것을, 응용 프로그래밍 차원에서 엄청난 코딩량으로 승부하거나, 아니면 서버에서 처리하더라도 복잡한 SQL 문을 사용해서 그것도 약간은 허술한 논리로 구현하는 경우가 너무 많다. 1) 트리거 사용 이유 트리거란 “자동으로 실행되도록 정의된 특수한 저장 프로시저”이다. 실제로 트리거..
SET IDENTITY_INSERT 명시적 값을 테이블의 ID 열에 삽입할 수 있도록 합니다. 구문 SET IDENTITY_INSERT [ database. [ owner. ] ] { table } { ON | OFF } 인수 database 지정한 테이블이 있는 데이터베이스의 이름입니다. owner 테이블 소유자의 이름입니다. table ID 열이 있는 테이블의 이름입니다. 비고 언제든지 세션에서 한 테이블의 IDENTITY_INSERT 속성만 ON으로 설정할 수 있습니다. 한 테이블에 이 속성이 ON으로 설정되어 있는데 다른 테이블에 대해 SET IDENTITY_INSERT ON 문을 실행하면 Microsoft? SQL Server™는 SET IDENTITY_INSERT가 이미 ON으로 설정되어 있음..
SQL Server의 기본 격리 수준(isolation level)은 read committed 입니다. 그래서 데이터를 읽을 때는 공유 잠금이 유지됩니다. 그러므로, 쉽게 설명하자면 SELECT문이 실행 중인 동안에 같은 row혹은 table에 insert나 update하는 작업은 block됩니다. 거꾸로 같은 row, data page 혹은 테이블에 데이터를 insert, update하는 동안 SELECT문은 block되게 됩니다. 이렇게 되면 데이터베이스 성능이 현저히 떨어지게 됩니다. 그러므로 일반적으로 단순 조회 쿼리에는 with (nolock)문을 추가하여 사용합니다. - 사용법- SELECT * FROM dbo.Jobs with(nolock) WHERE...