2009-05-24 7 views

답변

2

귀하가 작성한 모든 쿼리가 효과적으로 무작위이므로 SQL이 많은 메모리에서 사용되는 것을 원하지 않는 것처럼 들리 겠지요.

첫 번째로,이 메모리는 반환하려는 실제 데이터가 아닌 인덱스와 쿼리 계획을 저장하는 데 사용되기 때문에 아마도이 캐시는 생각보다 훨씬 유용 할 것입니다.

둘째,이 메모리 양을 사용하는 sql이 보이지 않는 실제 쿼리에서 성능 저하를 일으킬 가능성은 거의 없습니다. 정보를 얻으려면 SQL Server를 디스크로 이동해야하는 경우 사용하는 메모리 양은 거의 적합하지 않습니다.

그러나 SQL Server에서 사용하는 메모리 양을 줄일 수 있습니다. (나는 옵션이 SQL 2008에 어디에 있는지 모르지만 그것도 상당히 비슷하다고 가정합니다.) Management Studio에서 Server를 마우스 오른쪽 단추로 클릭하고 Properties를 클릭하십시오. 아래에 메모리 페이지가 생깁니다. 여기서 SQL이 사용할 최소값과 최대 값을 선택할 수 있습니다. 이렇게하면 실제 서버 제한 사항이 아닌 SQL에서 수행하는 모든 캐싱을 효과적으로 제한 할 수 있습니다.

나는 실제로 당신이 어떤 성능 향상을 볼 것이라고 생각하지 않습니다. 내 경험에 따르면 SQL은 항상 자신의 일을하는 것이 가장 좋습니다.

+0

그래, SQL 서버의 최대 메모리를 제한하면 지정된 최대 값보다 더 많은 메모리가 필요합니까? 그것은 추락할까요? –

+0

아니요, 충돌이 없어 한계에 달할 것입니다. – u07ch

1

귀하의 질문에 잘못되었습니다 : 캐싱은 데이터가 메모리에 있음을 의미하며 디스크 액세스를 피합니다.

어떤 경우에도 SQL Server 캐싱은 해를 끼치 지 않습니다. Pedant에게는 항상 예외가 있지만 코드와 구성이 심각하게 엉망이되어야합니다.

+0

SQL은 많은 시간이 걸리고 많은 메모리를 필요로합니다.이 거대한 메모리 사용량에서 이점을 얻지 못했습니다. 응용 프로그램의 논리는 데이터베이스에서 임의의 데이터를 가져 와서이 캐싱을 전혀 원하지 않습니다. –

+0

관리 스튜디오를 사용하여 sql의 메모리 사용을 제한합니다. 왜 아직도 데이터가 얼마나 많은지 확실하지 않습니다. 관리 스튜디오의 서버 속성 옵션에서이 작업을 수행 할 수 있습니다. 최대 메모리를 최소로 줄이고 SQL Server를 다시 시작하십시오. 메모리를 적게 사용할수록 디스크를 쓰러 트릴 수 있습니다. – u07ch

+0

@ahmed : SQL Server는 메모리를 사용합니다. 필요하지 않으면 일반적으로 메모리를 사용하지 않습니다. – gbn

0

SQL Server 캐싱을 끄거나 끄려면 SQL Server 캐싱 문제를 완전히 잘못된 방법으로 생각하는 것입니다. 데이터가 데이터 계층 계층에 캐시 된 경우 해당 데이터 계층에서 새로 고쳐야합니다. SQL Server는 오래된 데이터를 제공하지 않습니다.

관련 문제