2012-10-10 14 views
0

我有一個約1,100,000行的數據集。jqGrid需要30秒來計算,我有110萬行的網格

當我加載到我的jqGrid中時,SQL Profiler告訴我需要29.7秒才能返回記錄數,然後再過29.8秒才能返回數據以顯示在網格中。

請在下面看到對我的SQL Server表進行行計數的SQL。

SELECT 
[GroupBy1].[A1] AS [C1] 
FROM (SELECT 
    COUNT(1) AS [A1] 
    FROM [dbo].[vw_ProductSearch_FULL] AS [Extent1] 
) AS [GroupBy1] 

任何人都可以建議如何提高jqGrid生成的「count」查詢的性能嗎?

+1

你真的想要在網格中顯示計數或記錄以及網頁嗎?如果你確實需要它,你應該包含視圖'vw_ProductSearch_FULL'的代碼。第二個問題:爲什麼你需要29.8秒才能返回數據以顯示在網格中?您使用哪種數據分頁方法? – Oleg

+0

查看[答案](http://stackoverflow.com/a/8084466/315935),其中描述了可以做些什麼來消除計算記錄數量的需要。 – Oleg

+0

你有一個與網格無關的問題,爲什麼你應該在視圖中顯示超過一百萬條記錄?你至少應該使用SQL分頁......但我認爲你應該仔細重新分配你的用戶界面概念。 – Reflective

回答

0

我們需要更多關於您的數據庫的信息,以便爲您的查詢提供改進建議。但正如奧列格所說,你可能不需要查詢計數。

至於網格中的數據,你已經看到網格中有大約1百萬行不能很好地工作。我建議你在任何給定的時間使用分頁或真實滾動行來只加載一小部分行。這應該會使您的性能恢復到可接受的水平。