2012-04-10 2 views
0

나는 행 수가 거의 92356143 인 테이블 tbl_ECR_ProductData을 가지고 있습니다. 주 단위로 100000 개의 행을이 테이블로 가져옵니다.SQL Server 2000에서 큰 테이블 성능 처리

테이블에 16 개의 열이 있고 그 중 2 개가 기본 키를 구성하고 나머지 열은 varchar입니다.

여기 내 질문은 내가 나머지 열 값을 기반으로 테이블을 검색 할 때입니다. 그 오랜 시간이 걸리는, 거의 10 분.

어떻게 시간을 최소화 할 수 있습니까? 제발 도와주세요 .. 당신의 도움이 감사합니다 ... 미리 감사드립니다! 코드를 보지 않고 시간을 최소화하는 방법을 말하기 어렵다

CREATE TABLE [tbl_ECR_ProductData]( [Serial Number] [varchar](255) NOT NULL, [Act Number] [varchar](255) NULL, [Act Date] [datetime] NULL, [Act Location] [varchar](255) NOT NULL, [Manufacturer] [varchar](255) NULL, [ManufacturerPN] [varchar](255) NULL, [Act Description] [varchar](255) NULL, [Act PtNumber] [varchar](255) NULL, [Act Code] [varchar](255) NULL, [Act DateCode] [varchar](255) NULL, [Pmrl] [varchar](255) NULL, [Act ReceiveDate] [datetime] NULL, [Act Channel] [varchar](255) NULL, [Act Supplier] [varchar](255) NULL, [ImportDate] [datetime] NULL
CONSTRAINT [PK_tbl_ECR_ProductData] PRIMARY KEY CLUSTERED ( [Serial Number] ASC, [Act Location] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 90) ON [PRIMARY] )

+2

1 세트 인덱스 새 행으로)이 행을 삭제하거나 히스토리 값 테이블로 이동하십시오. – mortb

+0

SQL Server Management Studio에서 쿼리를 실행하는 경우 "실제 실행 계획 포함"을 설정하십시오. 생성 된 실행 계획을 검토하여 쿼리의 하위 부분이 가장 오래 걸리는 부분을 확인합니다. "중첩 된 루프"를 찾으려면 일반적으로 인덱스 스캔보다 시간이 오래 걸립니다. 1. 오랜 시간이 걸리는 부분을 피하기 위해 쿼리를 다시 작성하거나 2. 장기 실행 부품의 성능에 도움이되는 인덱스를 설정하십시오. – mortb

답변

4

을 다음과 같이 테이블 구조는 다음과 같다. 그러나 아래의 링크는 문제가있는 곳을 찾아서 문제를 해결하는 데 도움이됩니다. 나는 이것들이 매우 도움이되는 것을 안다. 당신은 (표에이 값이 superseeded되어있는 필요가 없습니다 즉 행을 역사적 정보를 저장하는 경우가 2. 검색하는 데 필요한 컬럼에

http://www.simple-talk.com/sql/performance/finding-the-causes-of-poor-performance-in-sql-server,-part-1/

http://www.simple-talk.com/sql/performance/finding-the-causes-of-poor-performance-in-sql-server,-part-2/

+0

테이블 구조는 다음과 같습니다 – user1323929

관련 문제