我用PB8.4+SQL2005做的專案.
最近發現有些資料視窗的查詢很慢,但是同樣的條件在查詢分析器里執行就不會.
資料視窗沒有下拉子資料視窗,就是直接呼叫存盤程序,用新建一個資料視窗也是一樣慢.
在查詢分析器里執行可能幾秒就出來了,在用DW retrivev有時幾分鐘都出不來.
還有一個奇怪現象,如果我把存盤程序刪了,再新建一個同樣的.這時用DW retrivev就不用慢.
跟查詢分析器里執行差不多.可是過一兩天就又變慢了.不知道是PB的問題還是SQL的問題.
還有就是資料量挺大了,有幾百萬的資料.
請各位幫忙分析分析是什么原因? 非常感謝!
uj5u.com熱心網友回復:
dw_1.setredraw(false)dw_1.retrieve()
dw_1.setredraw(true)
看看有沒有filter\sort的設定
filter不用,在資料庫where過濾
排序使用sql里的orderby ,不在資料視窗上設定
這么著看看還差那么多嗎?
不明白干嗎取出那么多資料,誰看得過來?
uj5u.com熱心網友回復:
table加indexuj5u.com熱心網友回復:
不是一次取那么多資料,是資料最大表的資料量有幾百萬了.table當然有加index了,在查詢分析器執行存盤程序不慢.
用PB調存盤程序馬上輸入引數預覽都很慢了.
資料視窗什么都沒加的.
uj5u.com熱心網友回復:
學習!uj5u.com熱心網友回復:
剛才試了另一個方法,我原來是用OLE DB介面連接的,剛改用MSS SQL SERVER 專用介面查詢就很快了.不明白是怎么回事,難道是OLE DB介面有問題,但是之前一直用都沒問題的.是最近查詢才慢的.
uj5u.com熱心網友回復:
我遇你同樣的問題,用pb11.5的ODBC介面,不但慢,而且以前用專用介面做的程式,在ODBC下不執行。這是pb的問題,沒辦法。
uj5u.com熱心網友回復:
在PB8.4中有用MSS SQL SERVER 介面,就不要用用OLE DB介面連接uj5u.com熱心網友回復:
同意,pb11沒有mss sql server介面才用,ole db介面。
最好使用MSS SQL SERVER 介面。
uj5u.com熱心網友回復:
select * from table (with index = 索引)你在查詢分析器中查尋一次以后 該查詢就被優化了 選擇了一個合適的索引,
我測驗了在datawindow中帶引數的查詢index的選擇好象排除了引數這個專案(復雜的查詢來說)
還有sqlserver的自動選擇的索引在資料量大的時候不是很準,優先依賴的是 主鍵索引
分析下表,和查詢陳述句 然后測驗 看建立什么索引的效率最高 然后 按
select * from table (with index = 索引) 格式 來指定索引
uj5u.com熱心網友回復:
現在改為用MSS SQL SERVER 介面連接,但我發現個問題,在查詢分析器看用sp_who看不能主機名的,主機名hostname那列為空的.用回OLE DB 就可以看到,是這樣的嗎轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/94949.html
標籤:數據庫相關
上一篇:PowerBuilder web
