2012-04-10 202 views
0

大表的性能處理我有一個表tbl_ECR_ProductData近92356143行。每週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 2012-04-10 11:47:42

+0

在SQL Server Management Studio中運行查詢時,打開「包含實際執行計劃」。查看生成的執行計劃以查看查詢的哪些子部分花費的時間最長。尋找「嵌套循環」通常需要比索引掃描等更多的時間。嘗試1.重寫您的查詢,以避免需要很長時間的部分或2.設置索引將有助於長期運行的部分性能。 – mortb 2012-04-10 12:14:27

回答

4

這是很難說怎麼沒有看到代碼降到最低的時候。但是,下面的這些鏈接應該可以幫助您找出問題出在哪裏,並且可能會修復它們。我覺得這些非常有幫助。

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

你需要在 2.搜索如果您在表中存儲歷史信息(即你不需要這些值已superseeded即行列

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

+0

表結構如下 – user1323929 2012-04-10 11:57:21