我有一個基於Microsoft SQL Server的第三方應用程序,即使對於簡單的選擇查詢也使用遊標。它看起來像.exe文件,我不能改變任何東西。如何在不重寫任何代碼的情況下提高SQL Server遊標性能?
我的問題是:我可以從SQL Server數據庫管理員端以某種方式提高此應用程序的性能嗎?更改一些SQL Server配置參數等。
換句話說:DBA可以在不更改應用程序的源代碼的情況下提高光標性能嗎?
一些更多的信息和例子。
我有這樣一個非常簡單的查詢(我從SQL跟蹤中得到它)。
select id, name from my_table
有用於id
和name
列的索引。 my_table
有700 000條記錄。
如果我在SQL Server Management Studio中運行它,它會立即返回第一個結果並在7秒內獲取所有結果。
但是這個第三方應用程序僅在7秒後才返回第一個結果。我比較了SQL跟蹤,我發現這個第三方應用程序使用遊標運行這個簡單的查詢,並將數據返回到網格。對於這個簡單的例子,我不能用索引等做很多事情,執行計劃是完美的。等等。
不好意思,我在問題描述中加入了一些更多的信息和例子。我不能用索引,執行計劃等做很多事情。它關於程序如何運行SQL查詢。 – Zlelik
我在回答中添加了一些內容,我想到的內容可能會有所幫助。 – Johan
索引碎片我會檢查。謝謝。 關於「RAM中的所有數據」,我認爲對我來說可能很難,因爲數據會增長。但是你的意思是什麼樣的數據?只有一個表,只有一個數據庫或什麼? 也許我可以把臨時數據庫放入內存,但它會在光標使用情況下有幫助嗎? – Zlelik