우연히 이전글을 보다가 플랜 캐쉬가 4GB가 넘으면 개발자랑 DBA랑 손잡고 한강으로....라는 것이 보이길래 현재 유지보수하고 있는곳을 살펴봤더니 4GB가 넘네요;;;;확인 방법1-1 플랜캐쉬 전체 사이즈 확인 제일 상단 TYPE이 NULL인 행의 사이즈 확인1-2 플랜캐쉬 사이즈 확인 쿼리문을 실행해서 어느 곳에서 과도한 메모리가 사용되는지 확인2. 플랜캐쉬된 목록 확인 Adhoc, Proc, Prepared등을 확인하여 문제가 있는곳을 찾는다해당 쿼리 해결 방법플랜 캐쉬 삭제하기프로시저 캐쉬, 플랜 캐쉬플랜캐쉬는 세션 옵션에 다른 플랜으로 잡힌다
SQL Server 백업 시 결과를 확인할 수 있는 쿼리
SQL Server에 등록된 실행 캐시 정보를 확인
데드락 발생 시 확인 방법참고 사이트: 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이 발생하는지 체크
테이블의 용량, 행수 모니터링
하나의 필드에 여러 값을 검색할 경우 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'해결 방안
출처: 훈스닷넷 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는 키입니다.
출처: DBguide.net
데이터베이스별 파일 정보
- Total
- Today
- Yesterday
- Git
- injection
- 암호화
- UTF-8
- .NET Core
- asp
- c#
- Convert
- index
- MS-SQL
- 문자열 분리
- ADO
- HttpCookie
- 폰트색상
- SEQUENCE
- 오라클
- IIS
- offline application cache
- case
- ASP.NET
- 인덱스
- Visual Stuiod Team Services
- jquery
- 영어
- 숙취
- oracle
- Windows2003
- SQL
- gitignore
- pang caching
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |