当前位置: 代码迷 >> ASP.NET >> 求最好的SQL忧化方法,35W数据进行检测对指定字符串是否有重复值,奇慢无比,完成花费时间是18 秒呀,真让人无法接受,解决办法
  详细解决方案

求最好的SQL忧化方法,35W数据进行检测对指定字符串是否有重复值,奇慢无比,完成花费时间是18 秒呀,真让人无法接受,解决办法

热度:8998   发布时间:2013-02-25 00:00:00.0
求最好的SQL忧化方法,35W数据进行检测对指定字符串是否有重复值,奇慢无比,完成花费时间是18 秒呀,真让人无法接受,
 
江湖救急!

35W数据进行检测对指定字符串是否有重复值,奇慢无比,完成花费时间是18 秒呀,真让人无法接受,
我的SQL 语句如下:

SQL code
--数据库内有35W记录要进行检测是,declare @item_no char(50);declare @i int;set @i=0;set @item_no='P99-000000630092';--查询是否有重复的字段串,(当然实际字段是不相同的)while(@i<20)                    --GridView 上有20条记录要进行检测是否重复,所以这里需要20begin    SELECT  count(1) as temp    FROM    [v_mat_all_with_rdate] FULL join [Item_Code_table]     ON      [v_mat_all_with_rdate].[Item_ID]=[Item_Code_table].[ItemID]     WHERE   [v_mat_all_with_rdate].[Item_ID]=@item_no OR [Item_Code_table].[New_ItemID]=@item_no; set  @i=@i+1; end -- 以上是 编码检测是否重复--以下是描述检测是否重复declare @str char(500);set @str='拉鏈布袋 銀色 600D國POLYL945*W825*H130mm 提手紫色并放在';declare @k int;set @k=0;while(@k<20)beginSELECT  count(1) as tempFROM    [v_mat_all_with_rdate] FULL join [Item_Code_table] ON      [v_mat_all_with_rdate].[Item_ID]=[Item_Code_table].[ItemID] WHERE     [Item_Code_table].[New_Description]=@str or [v_mat_all_with_rdate].[Description]=@str ;set @k=@k+1;end-- 完


求最好的SQL忧化方法,35W数据进行检测对指定字符串是否有重复值,奇慢无比,完成花费时间是18 秒呀,真让人无法接受,

------解决方案--------------------------------------------------------
另外例如“SELECT count(1) .....”这种也显然是没有必要的。只要有两条(使用一个exists子查询)就应该停止去查找了,你既然只是要查重又何必去统计出其重复个数来呢?
------解决方案--------------------------------------------------------
探讨

另外例如“SELECT count(1) .....”这种也显然是没有必要的。只要有两条(使用一个exists子查询)就应该停止去查找了,你既然只是要查重又何必去统计出其重复个数来呢?
  相关解决方案