菜鸟求一sql语句

renboy20 2013-01-31 09:22:45
我写了一新闻自动抓取程序,在每抓取一条信息时都会查询数据库是否有同标题的新闻,如有就放弃,
一直用的select count(*)......语句,判断是否存在,但时间一长,现在新闻表里有40多万条了,现在一用select count(*)语句,在sqlserver里都要2分多钟时间,程序里都会报错。查了很多方法都不行。

现在我就想换一种方式,缩小表查询,我就查当前抓取的新闻标题,在前5000条里是否存在。

表有字段: F_ID(自增涨) F_Title(标题)

求大虾解决一下, 我试试用这样的sql会不会减短时间。
...全文
159 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Kilin_Zhang 2013-02-01
  • 打赏
  • 举报
回复
引用 7 楼 zhang_7150 的回复:
楼主只是为了判断库了是否存在相同数据嘛,为什么要用count呢,count将会遍历所有数据,自然就慢了,为什么不用用exists呢。 记得给title上面加索引。 WHERE EXSIS(SELECT TOP 1 1 FROM [TABLE] WHERE F_Title = @Title)
笔误: WHERE EXISTS(SELECT TOP 1 1 FROM [TABLE] WHERE F_Title = @Title)
Kilin_Zhang 2013-02-01
  • 打赏
  • 举报
回复
楼主只是为了判断库了是否存在相同数据嘛,为什么要用count呢,count将会遍历所有数据,自然就慢了,为什么不用用exists呢。 记得给title上面加索引。 WHERE EXSIS(SELECT TOP 1 1 FROM [TABLE] WHERE F_Title = @Title)
F15Eagle 2013-02-01
  • 打赏
  • 举报
回复
在数据库中设置标题字段不重复呢
shoppo0505 2013-01-31
  • 打赏
  • 举报
回复
表格列多很多的话,别用 select count(*) from... 用 select count(1) from... 其他用原来的程序就行。
renboy20 2013-01-31
  • 打赏
  • 举报
回复
引用 3 楼 shulei521 的回复:
随机5000条中选择 select * from (select top 5000 * from new order by NEWID()) a where F_Title=(select F_Title from new where F_ID=@@IDENTITY)
select count(*) from (select top 5000 * from T_News order by F_Id desc) a where F_Title=(select F_Title from T_News where F_Title ='标题内容乱打的字') 稍稍改一下 正解
shulei521 2013-01-31
  • 打赏
  • 举报
回复
随机5000条中选择 select * from (select top 5000 * from new order by NEWID()) a where F_Title=(select F_Title from new where F_ID=@@IDENTITY)
shulei521 2013-01-31
  • 打赏
  • 举报
回复
create table new ( F_ID int identity(1,1), F_Title varchar(50) ) insert into new select '新闻1' union select '新闻2' union select '新闻3' union select '新闻4' select * from (select top 5000 * from new) a where F_Title=(select F_Title from new where F_ID=@@IDENTITY)
shulei521 2013-01-31
  • 打赏
  • 举报
回复
select * from (select top 5000 * from new) a where F_Title=(select F_Title from new where F_ID=@@IDENTITY)

27,580

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧