2012-06-07 3 views
1

계산 및 항목 수 때문에 시간이 초과되어 현재 저장 프로 시저가 최적화되어 있습니다.SQL Server 성능 임시 테이블 또는 변수

그러나 상황에 대해 확실하지 않습니다. 8 임시 테이블 (데이터베이스의 다른 데이터에서 정보를 가져 오는)을 사용하거나 데이터베이스의 데이터를 다양한 변수에 저장하고 액세스하는 것이 가장 좋습니다.

시간 초과 문제를 해결하는 데 가장 좋은 성능을 제공하는 제품은 무엇입니까?

+1

시험하기가 그렇게 어렵지 않습니까? – JeffO

+0

각 임시 테이블에 몇 개의 행이 있습니까? 또한 변수에 대해 이야기 할 때 테이블 변수 또는 일반 데이터 유형에 대해 이야기하고 있습니까? – UnhandledExcepSean

+0

은 아마도 1000 개 항목이고 일반 데이터 유형은 – MasterP

답변

1

"임시"테이블에있는 항목 수에 따라 다릅니다.

  • #temp 그것에 정의 된 인덱스를 가질 수 실제 임시 테이블이를 등의 행의 수의 SQL 서버에 의해 분석되며, 이는 트랜잭션에 참여 예컨대 수행 행을 삽입 한 다음 롤백하면 임시 테이블에서 해당 행이 사라집니다.

  • 테이블 변수 @temp은 항상 SQL Server에서 정확히 하나의 행으로 간주됩니다. 단지 소수 만 있으면 문제가되지 않습니다. 거기에 행이 있습니다. 그러나 수백 개의 행을 저장해야하는 경우 SQL Server 쿼리 최적화 프로그램에 의한 이러한 가정은 매우 비효율적 인 쿼리 계획으로 이어질 수 있습니다. 또한 : - 좋은 일을 할 수있는 - 테이블 변수는 하지 거래에 참여 할 수 또는 나쁜 - 위, 당신은 임시 테이블을 확실히를 사용해야 답변을 기반으로 환경

+0

인데 1000 개 이상의 항목은 무엇입니까? – MasterP

+0

@MasterP : 그런 경우, 나는 아마 "실제"임시 테이블 ('# temp' 또는'## temp')쪽으로 기울어 질 것입니다. –

0

에 따라 달라집니다. 또한 색인을 생성하여 실적을 높여야합니다.