우연히 이전글을 보다가 플랜 캐쉬가 4GB가 넘으면 개발자랑 DBA랑 손잡고 한강으로....라는 것이 보이길래 현재 유지보수하고 있는곳을 살펴봤더니 4GB가 넘네요;;;;확인 방법플랜캐쉬 전체 사이즈 확인: 제일 상단 TYPE이 NULL인 행의 사이즈 확인플랜캐쉬 사이즈 확인: 쿼리문을 실행해서 어느 곳에서 과도한 메모리가 사용되는지 확인플랜캐쉬된 목록 확인: Adhoc, Proc, Prepared등을 확인하여 문제가 있는곳을 찾는다-- 1. 플랜캐쉬 전체 사이즈 확인SELECT TOP(20) [TYPE] , SUM(SINGLE_PAGES_KB) AS [SPA MEM, KB] FROM SYS.DM_OS_MEMORY_CLERKS GROUP BY [TYPE] WITH ROLLUP ORDER BY..
WEB TIP/MS-SQL
SQL Server 백업 시 결과를 확인할 수 있는 쿼리SELECT A.backup_set_id , B.physical_device_name AS file_path , A.database_name AS database_name , CAST(CAST(A.backup_size / 1000000 AS INT) AS VARCHAR(14))+ ' ' + 'MB' AS backup_size , CAST(DATEDIFF(second, A.backup_start_date, A.backup_finish_date) AS VARCHAR(4)) + ' '+ 'Seconds' AS backup_time_taken , A.backup_start_date AS backup_datetime ..
데드락 발생 시 확인 방법참고 사이트: sql server - Help reading deadlock XMLProfiler 실행Deadlock 확인 후 XML Report 확인resource-list > keylock의 associatedObjectId로 테이블 확인 (하단 Deadlock Table Search)process-list > process > inputbuf에서 SP, SQL 확인. SP, SQL이 나와있지 않은 경우 Object ID로 확인 (하단 Stored Procedure Search)Table, SP, SQL을 확인하여 어느 곳에서 Deadlock이 발생하는지 체크-- Deadlock Table SearchSELECT OBJECT_NAME(p.object_id) AS TableNa..
하나의 필드에 여러 값을 검색할 경우 MS-SQL은 배열을 지원하지 않기 때문에 입력 받은 문자열을 변경해야합니다. 발생 상황TB_FRUITS 테이블의 favor 필드에서 사용자가 선택한 모든 값(apple, banana, strawberry, pear)을 조회아래의 쿼리를 실행해야하지만, 사용자가 선택한 값은 항상 변한므로 예측하기 어렵다. SELECT * FROM WHERE favor = 'apple' SELECT * FROM WHERE favor = 'banana' SELECT * FROM WHERE favor = 'strawberry' SELECT * FROM WHERE favor = 'pear'해결 방안
ERWIN에서 MSSQL 2008을 reverse engineer할 때 DAX000 에러가 발생할 경우 다운로드 센터 이동해서 운영체제에 맞는 sqlncli.mis 파일을 설치
출처: 훈스닷넷 TABLE 명 ATable index userid team score date 1 홍길동 팀1 10 2015-05-05 2 홍길동 팀2 10 2015-05-07 2 홍길동 팀3 10 2015-05-05 3 김삿갓 팀3 12 2015-01-05 현재 결과과 위에 처럼 나오고 있습니다. 제가 원하는 결과 는 index userid team score date 2 홍길동 팀2 10 2015-05-07 3 김삿갓 팀3 12 2015-01-05 동일한 아이디일경우엔 date가 가장 최근인사람만 출력되야합니다. 포인트는 동일한 아이디이고 부서가 다를수도 있습니다. 참고로 index는 키입니다.