大表的性能处理我有一个表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] )
1.设置索引由更新的行)删除这些行或将它们移动到历史值表。 – mortb 2012-04-10 11:47:42
在SQL Server Management Studio中运行查询时,打开“包含实际执行计划”。查看生成的执行计划以查看查询的哪些子部分花费的时间最长。寻找“嵌套循环”通常需要比索引扫描等更多的时间。尝试1.重写您的查询,以避免需要很长时间的部分或2.设置索引将有助于长期运行的部分性能。 – mortb 2012-04-10 12:14:27