프로그래밍/데이터베이스

프로그래밍/데이터베이스

SSMS에서는 빠른데 적용하면 느릴경우

가끔 SSMS에서는 0.1초만에 끝나는 쿼리가 이상하게 Web이나 프로그램으로 실행하면 느린 경우가 있다. 물론 다른 원인도 많지만 이 방법도 써서 쿼리를 확인해보자. SET ARITHABORT OFF /* 문제가 되는 쿼리 */ SELECT * FROM MYWORKTABLE WHERE WORKER LIKE '봉구%' 기본적으로 SSMS에서는 ARITHABORT 옵션이 ON 상태이다. 만약 우리가 SSMS에서 다음쿼리를 실행한다면 SELECT * FROM MYWORKTABLE WHERE WORKER LIKE '봉구%' 실제로 실행 되는 쿼리는 다음과 같다. (프로파일러 돌려보면 나온다) SET ARITHABORT ON SELECT * FROM MYWORKTABLE WHERE WORKER LIKE '봉구%..

프로그래밍/데이터베이스

서버의 CPU 사용률 확인하는 쿼리

이상하게 CPU 사용률이 높을때 실행해서 어떤놈이 CPU를 많이 쓰고있는지 확인할 때 쓴다. use tempdb CREATE TABLE #sp_who2 (SPID INT,Status VARCHAR(255), Login VARCHAR(255),HostName VARCHAR(255), BlkBy VARCHAR(255),DBName VARCHAR(255), Command VARCHAR(255),CPUTime INT, DiskIO INT,LastBatch VARCHAR(255), ProgramName VARCHAR(255),SPID2 INT, REQUESTID INT) INSERT INTO #sp_who2 EXEC sp_who2 SELECT A.SPID, B.EVENT_INFO, A.STATUS, A.LOGIN..

프로그래밍/데이터베이스

현재 실행중인 프로시저 이름 가져오기 (로그 기록할때 유용하다)

PRINT OBJECT_NAME(@@PROCID) 프로시저가 프로시저를 호출한다거나 할 때, 어느 프로시저에서 오류가 발생하는지 모를때가 있다. 그럴때 PRINT 혹은 Log 기록용으로 사용하기 좋은 명령어다.

프로그래밍/데이터베이스

모든 테이블 중 특정하여 자료 검색하기

정말 가~끔 모든 테이블의 데이터를 검색하고 싶을때가 있다. 예를들면.. NAME이라는 컬럼에 들어있는 '홍길동'이라는 데이터를 전부 찾고 싶을때? USE [DATABASE_NAME] --데이터베이스 이름 DECLARE @TABLE NVARCHAR(50) = '', @COLUMN NVARCHAR(50) = '', @ROWC INT = 9999, @ANS NVARCHAR(50) = '', @QUR NVARCHAR(999) = '' --LIKE %컬럼이름%을 만족하는 컬럼을 가진 모든 테이블 조회 SELECT ROW_NUMBER() OVER (ORDER BY B.NAME) [ROW_NUM], B.NAME [TABLENM], A.NAME [COLUMNNM], TYPE_NAME(A.system_type_id) ..

프로그래밍/데이터베이스

데이터베이스, 테이블, 컬럼을 쿼리로 검색 하는 방법

MS-SQL은 SSMS를 워낙 잘 만들어놔서 GUI로 보는게 편하긴 하다. 그래도 가끔 동적쿼리를 만들거나 할 때, 테이블 이름이나 컬럼 이름이 필요한 경우가 있는데 이럴때 쓰는 쿼리를 소개한다. --데이터베이스 이름 조회 SELECT NAME FROM SYS.DATABASES WHERE NAME NOT IN('MASTER', 'MODEL', 'MSDB', 'TEMPDB') --테이블리스트 조회(현재 접속된 데이터베이스) SELECT NAME, OBJECT_ID FROM SYS.TABLES WHERE NAME = '테이블명' --컬럼 리스트 조회 SELECT A.NAME [컬럼명], TYPE_NAME(A.system_type_id) [컬럼타입], A.MAX_LENGTH [컬럼크기] FROM SYS.COL..

최봉구
'프로그래밍/데이터베이스' 카테고리의 글 목록 (2 Page)