친애하는, 동일한 쿼리를 실행하고 다음과 같이 다른 실행 시간이 걸립니다. 쿼리는 다음과 같습니다.
select * from table1 where userID = 2
사용자 ID를 키 중 하나로 포함하는 비 클러스터 인덱스 idx1을 스캔하므로 5 초 안에 결과를 얻습니다. 그러나 userID = 5로 다시 실행하면 userID가 키 중 하나로 포함되지 않은 비 클러스터 인덱스 idx2를 스캔하고 2 시간 후에 결과를 얻습니다. 전체 테이블을 읽고 userID = 5를 찾는 것 같습니다.
이 문제의 원인은 무엇입니까 ?? 아마도 userID = 5의 값이 idx1 리프에 있지 않습니까 ?? NC 인덱스의 리프 수준은 값 범위를 저장하고 쿼리는 userID = 4 및 userID = 6에 대해 잘 실행되므로 userID = 5는 리프 수준에 있어야합니다.
조언 부탁드립니다
먼저 해당 테이블의 인덱스 통계를 업데이트합니다. 작동하지 않고 ASE15 또는 +를 사용중인 경우 userID 열의 통계를 업데이트해야합니다. ASE15 최적화 프로그램은 ASE12보다 통계에 더 민감합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다