Database
-
MSSQL 튜닝 기초Database 2020. 10. 30. 14:13
1 SELECT는 필요한 결과값만을 요구 하는가? 2 적절한 WHERE 조건을 사용하는가? 3 COUNT(컬럼명) 대신 COUNT()을 사용하는가? 4 커서 및 임시 테이블의 내용을 최대한 자제하는가? 커서보다는 임시 테이블이 임시 테이블보다는 테이블 변 수를 사용하는 것이 성능이 나아진다. 5 VIEW의 총 사용을 줄였는가? 6 저장 프로시저를 사용하는가? 저장 프로시저의 역할 7가지 1. 데이터 무결성의 시행 2. 복잡한 비즈니스 규칙과 제약의 강화 3. 캡슐형 설계 4. 유지 보수 5. 네트워크 트래픽 감소(오고 가는 긴 SQL 구문을 축소) 6. 보다 빠른 실행(컴파일을 하지 않습니다) 7. 보안 강화 쿼리는 한번만 실행할 때는 일반 SQL이 훨씬 간단하다. 그러나 반복적으로 실행 되면 저장 프로..
-
MSSQL 특정문자열을 사용하는 SP,VIEW,Function,Trigger 찾기Database 2020. 10. 29. 17:06
아래 쿼리로 특정문자열이 포함된 프로시저, 뷰테이블, 함수, 트리거를 찾을 수 있다. select distinct a.name from sysobjects a with (nolock) join syscomments b with (nolock) on a.id = b.id where a.xtype = 'P' and b.text like '%' + '찾을 문자열' + '%' order by a.name /* xtype = 'P' : SP xtype = 'TR' : 트리거 xtype = 'V' : 뷰 xtype = 'FN' : 함수 */ 하나하나 열어보는 고생을 좀 덜어준다. 다만 주석처리된 부분까지도 찾아버리는.....
-
MSSQL 세션 정보 확인Database 2020. 10. 26. 16:56
db가 갑자기 느려지는 경우 sp_lock 명령어로 세션을 확인한다. 실행 후 나오는 값에 대하여 아래와 같이 정리되어 있다. spid smallint 잠금을 요청하는 프로세스의 데이터베이스 엔진 세션 ID입니다. dbid smallint 잠금이 설정된 데이터베이스의 ID입니다. DB_NAME() 함수를 사용하여 데이터베이스를 식별할 수 있습니다. ObjId int 잠금이 설정된 개체의 ID입니다. 관련 데이터베이스에서 OBJECT_NAME() 함수를 사용하여 개체를 식별할 수 있습니다. 값 99는 특별한 경우로서 데이터베이스에서 페이지 할당을 기록하는 데 사용되는 시스템 페이지 중 하나에 대한 잠금을 나타냅니다. IndId smallint 잠금이 설정된 인덱스의 ID입니다. Type nchar (4) ..
-
인덱스 조각 상태 쿼리 MS-SQLDatabase 2020. 10. 22. 16:29
아래 함수로 테이블의 인덱스 조각 상태를 알 수 있다. --조회 DBCC SHOWCONTIG (tableName) 익스텐드 검색 조각화 상태가 30%를 넘어가면 인덱스의 재구성이 필요하다. 다음 쿼리를 이용하면 해당 테이블의 인덱스별 인덱스 상태를 알수 있다. SELECT a.object_id, object_name(a.object_id) AS TableName, a.index_id, name AS IndedxName, avg_fragmentation_in_percent FROM sys.dm_db_index_physical_stats (DB_ID (N'dbName') , OBJECT_ID(N'tableName') , NULL , NULL , NULL) AS a INNER JOIN sys.indexes A..
-
N:N 데이터 관계 모델링Database 2020. 10. 21. 13:13
1 N:N 관계해소 방법 ① 기본적인 N:N 관계 해소 방법 - 관계 엔티티타입 분리 업무 규칙: "한번 납부할 때는 여러 개의 요금 고지서를 한꺼번에 납부할 수 있고 또 하나의 요금 고지서를 여러 번에 걸쳐 납부할 수 있다." N:N 관계 해소 방법 - 관계 엔티티타입 분리 ② PRIMARY KEY에 의한 N:N 관계의 해소 방법 - PRIMARY KEY 통합 업무 규칙: "한번 납부할 때는 여러 개의 요금 고지서를 한꺼번에 납부할 수 있고 또 하나의 요금 고지서를 여러 번에 걸쳐 납부할 수 있다." N:N 관계 해소 방법 - PRIMARY KEY 통합 추가 설명 1) "하나의 요금 고지서를 여러 번에 걸쳐 납부한다." - 납부 엔티티타입에 요금번호(FK)가 존재 함으로 성립 2) "한번 납부할 때 여..