ms-sql이 2G 정도의 메모리를 사용하고 합니다.
테이블의 사이즈와 로수가 2G가 안될 때 프로시저에서 조회를 실행하게 되면 (랜덤하게..)
테이블의 자료들이 메모리에 올라오게 되어 성능을 빨리 하게 하기도 하는지요
데이터 자체가 캐슁되어지는지 알고 싶습니다.
저는 실행계획만 캐쉬되는줄 알고 있는데 데이터도 캐쉬해서 내가 1번을 조회했는데 다시 1번을 요청하면 DB까지 가지 않고 메모리에 있는 정보를 리턴하게 해 주나요?
넵... 당연합니다. ^^;;
LRU 알고리즘에 의해 캐쉬에 올라온 데이터는 알고리즘에 의해...메모리에 유지 됩니다.
메모리에서 데이터가 밀려 나면... 당연히... 디스크에 저장 되 있는 데이터 화일에서 읽어 와야 겠죠? ^^
튜닝의 가장 중요한 요소는 BUFFER GET 이 가장 중요한 대상이 될것입니다. BUFFER GET 을 줄여 줘야 겠죠? ^^
답변 감사합니다.
그럼 Buffer get을 줄여서 성능을 측정하는것이 정확하다는 말씀인가.?
buffer get을 사이즈를 알 수 있는 방법가 그것을 설정하는 방법이 있는지 알려주시면 감사하겠습니다.
먼저 query analyze 를 여시고...
set statistics profile on
을 하시고 해당 sql 을 실행하면... 실행계획을 확인하실수 있으며..
elapsed time 및 logical io, physical io 및 cpu time 및
얼마나 많은 로우를 io 했는지 등에 대한 세부적인 내용들을 확인 하는 것이 가능합니다.
수고하세요...