就下面一个简单的查询吧,需要好几十秒钟 select * from(SELECT ROW_NUMBER() OVER (order by id) as pos, ID, SoftNo, SoftDate, SoftYear, PubNo, PubDate, PubYear, Title, Abstract, Claims, Address, ZipCode, Country, CountryCode, Province, ProvinceCode, Agency, Type, TransformOK, ErrorDesc FROM Patent_Info WHERE (Title LIKE '水泥制品的制造方法')) t where pos between 1 and 20
你是为了查字典还是必须要跑完这100W? 如果不是必须跑完这100W,那么可以用top 来限制. 最近做了个查字典,str已经加了索引 select * from dic where str like 'a%' 需要3秒 select top 10 * from dic where str like 'a%' 需要0.1秒左右
你的 where pos between 1 and 20 完全可以用top 20來代替, 然後你在表數據多的時候,要在表名後面加 (nolock) 你的like 后面沒有加 % ,那根本就沒必要用like還有,你的所有8張表,所有的聯合查詢的字段,都建立索引,這是必須的我現在操作的表數據有十幾張的表,數據量遠比你的大,幾千W的數據表也不少 但是查詢數據都沒有說像你這么慢
select * from(SELECT ROW_NUMBER() OVER (order by id) as pos, ID, SoftNo, SoftDate, SoftYear, PubNo, PubDate, PubYear, Title, Abstract, Claims, Address, ZipCode, Country, CountryCode, Province, ProvinceCode,
Agency, Type, TransformOK, ErrorDesc
FROM Patent_Info
WHERE (Title LIKE '水泥制品的制造方法')) t
where pos between 1 and 20
如果不是必须跑完这100W,那么可以用top 来限制.
最近做了个查字典,str已经加了索引
select * from dic where str like 'a%' 需要3秒
select top 10 * from dic where str like 'a%' 需要0.1秒左右
完全可以用top 20來代替, 然後你在表數據多的時候,要在表名後面加 (nolock)
你的like 后面沒有加 % ,那根本就沒必要用like還有,你的所有8張表,所有的聯合查詢的字段,都建立索引,這是必須的我現在操作的表數據有十幾張的表,數據量遠比你的大,幾千W的數據表也不少
但是查詢數據都沒有說像你這么慢