목록DATA (45)
Data Modeling Evangelist Kaien Kim's Blog
-- 특정테이블의 컬럼정보가져오기 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
◈ enqueue 와 latch - DBMS의 가장 주된 기능 중에 하나는 동일 자원에 대한 동시 액세스를 관리하는 것이며, 이를 위해 오라클이 사용하는 대표적인 제어 구조가 Enqueue와 Latch 입니다. - enqueue는 FIFO 구조를 가진 큐 입니다. 먼저 요청한 쪽이 먼저 자원을 획득하는 방식 입니다. 그러나 latch는 enqueue와 달리 자유 경쟁에 의해 latch를 획득하게 되며 먼저 요구했다고 해서 반드시 먼저 획득할 수 있는 것이 아닙니다. ◈ 래치란? - 래치(Latch) = 빗장, 락(Lock) = 자물쇠 - 래치는 SGA 내부의 메모리 구조에만 적용된다. 래치는 데이터베이스 오브젝트에는 적용되지 않습니다. 오라클 SGA는 많은 래치를 가지고 있으며 이것은 동시 접근에 의한 ..
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...
Materialized view query문의 실행결과에서 내부적으로 과도한 sort가 발생하거나 실행결과가 나오기까지 오랜 시간이 걸린다면 이 query문을 한번만 쓰고 버리기 아까울 것이다. 이럴경우 실행결과를 Table 처럼 view로 구성하는 것을 Materialized view라 한다. (9i부터) * SQL문의 "인스턴스화" * 고유한 데이터 세그먼트가 있으며, 다음 이점을 제공함 - 공간관리 옵션 - 고유한 인덱스 사용 * 다음 작업에 유용함 - 비용이 많이 드는 복잡한 조인 - 데이터 요약 및 집계 그러나 query 요구가 달라지면 새로운 Materialized view를 다시 생성해야함 -> query 당 하나의 Materialized view 사용 또한, DML 문장 실행시 심각한 Re..