select * from PDL_HistoryWIPIO1 where IOTime>'2002-06-01'
and IOTime<'2002-06-10'如上一條語句 執行一次需要 1分42秒,PDL_HistoryWIPIO1 表當中的數據量大約是2-3百萬條記錄索引創建如下
CREATE INDEX IX_PDL_HistoryWIPIO02 ON dbo.PDL_HistoryWIPIO1
(
IOTime,
LotNum
)請問各位高手如何才能讓我的查詢變得更有效率,現在是非常的頭痛
解决方案 »
- Delphi TServerSocket和TClientSocket通信问题
- 为什么我的关机程序不能正常关机呢?
- IndyFTP控件能否返回的文件創建日期,修改日期,最后訪問日期?急!!!在線等.
- 一个关于INI文件的问题?
- 报表大侠,有经验的高手救我
- 一个简单的问题
- diamond ado v2的事务中循环进行insert的问题,解决的送diamond ado v2源码版!!!
- 关于DBGridEh和DBGrid条件显示不同颜色的问题?
- 用session.GetTableNames的时候怎么屏蔽掉输入username,password?
- 各位高手:我的程序中客户端需要通过Socket与服务器通讯以存取数据库中的数据,包括浏览、查询、增、删、改等,是否能够实现?
- 主模块调用子模块!
- 求一个问题的真正的解答:有关DCU的???
這種我試過了。都是一樣兒的。
這個效率問題真的會搞死人啊!
declare @PageIndex int
Select @PageSize = 30
Select @PageIndex =10
Select top (@PageSize) *
(Select top (@PageSize*@PageIndex) *
From StknWip(nolock)
order by LotNum desc
)
order by LotNum 執行時報出如下錯誤
伺服器: 訊息 170,層級 15,狀態 1,行 7
行 7: '(' 附近的語法不正確。
伺服器: 訊息 170,層級 15,狀態 1,行 8
行 8: '(' 附近的語法不正確。應該如何解決呀。
(
IOTime,
LotNum
)
你建的是复合索引, 单独对iotime建索引试试, 还有就是使用sql自有的查询优化器看看, 会有建索引的指导信息
为什么要用SQL这样的东西?无论是效率还是安全性都那么烂!
难到你们都没学过数据结构吗?
难到就不能花一些时间来做自己的数据库吗?
and IOTime<'2002-06-05'
union all
select * from PDL_HistoryWIPIO1 where IOTime>'2002-06-06'
and IOTime<'2002-06-10'如果是這樣兒寫的話速度會快得多。