2017-04-24 67 views
0

我想在asp.net中綁定一個gridview,但這需要我太多時間。我正在使用存儲過程,但在Microsoft SQL Server管理工作室中,存儲過程僅需要2-3秒。我的問題是當我加載asp頁面。需要20-30秒來填充我的GridView ...任何想法?填充網格視圖需要太多時間

UPDATE:我的問題是在我的存儲過程

SELECT 
      ROW_NUMBER() OVER 
    (
     ORDER BY A.[ActiuniNumar] DESC 
    ) as RowNum, 
      A.[Id], 
      A.[Societate_Id], 
      A.[Denumire], 
      A.[NrORC], 
      A.[CUI], 
      A.[CNP], 
      A.[Adresa], 
      A.[Localitate], 
      A.[Judet], 
      A.[Tip], 
      A.[ActiuniNumar], 
      A.[ActiuniSerie], 
      A.[ActiuniNumar] * [ValoareNominala] AS [ActiuniValoare], 
      CASE 
       WHEN S.[Capital] = 0 THEN 0 
       ELSE CAST(A.[ActiuniNumar] * 100/S.ActiuniNumar AS decimal(18, 8)) 
      END AS [ActiuniProcent], 
      A.[ActiuniNevandabileNumar], 
      A.[ActiuniNevandabileSerie], 
      A.[Diverse], 
      A.[SerieCI], 
      A.[Deleted], 
      A.[ModifiedBy], 
      A.[ModifiedAt] 
      INTO #Results2 
    FROM [dbo].[Actionar] A 
    INNER JOIN [dbo].[Societate] S ON A.[Societate_Id] = S.[Id] 
    WHERE 1 = 1 
    AND ((@ActiuniNumar IS NULL AND 1 = 1) OR (@ActiuniNumar IS NOT NULL AND (@ActiuniNumar = 0 AND A.[ActiuniNumar] <= 0) OR (@ActiuniNumar != 0 AND A.[ActiuniNumar] > 0))) 
    AND [Societate_Id] = @Id 
    AND ((@Filter = '' AND 1 = 1) OR (@Filter != '' AND (A.[Denumire] LIKE @Filter OR A.[NrORC] LIKE @Filter OR A.[CUI] LIKE @Filter OR A.[CNP] LIKE @Filter OR A.[ActiuniNumar] LIKE @Filter OR A.[SerieCI] LIKE @Filter))) 
    and A.[Deleted] = 0 
    ORDER BY A.[ActiuniNumar] DESC 

    SELECT * FROM #Results2 where RowNum BETWEEN(@pageIndex -1) * @pageSize + 1 AND(((@pageIndex -1) * @pageSize + 1) + @pageSize) - 1 

我花了20秒跑..

+0

您可以從該存儲過程獲得多少行? – jgasiorowski

+0

@jgasiorowski我正在使用Costum分頁,頁面上只有10行 –

+1

你應該顯示一些代碼我相信 – jgasiorowski

回答

0

對不起,如果爲時已晚。但是這發生在我身上。並且只有工作的解決辦法是這樣的:

... 
    and A.[Deleted] = 0 
    --ORDER BY A.[ActiuniNumar] DESC 

評論的ORDER BY。這使它變慢。