【问题标题】:Populating a grid view is taking too much time填充网格视图花费了太多时间
【发布时间】:2017-09-20 20:01:27
【问题描述】:

我正在尝试在 asp.net 中绑定一个 gridview,但这需要我太多时间。我正在使用存储过程,但在 microsoft sql server management studio 中,存储过程只需要 2-3 秒。我的问题是当我加载 asp 页面时。填充我的网格视图需要 20-30 秒...有什么想法吗?

更新:我的问题出在我的存储过程中

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 秒才能运行..

【问题讨论】:

  • 您可以从该存储过程中获得多少行?
  • @jgasiorowski 我正在使用成本分页,页面上只有 10 行
  • 你应该显示一些我相信的代码
  • @jgasiorowski 代码是什么?
  • 在浏览器向服务器发出请求和将数据绑定到视图之间,有很多地方可能会出错。不可能说出任何导致您的解决方案出现问题的原因。您应该指定您使用什么来调用 SP,您使用的是 mvc 还是 webforms 等。您的问题缺少这些信息

标签: asp.net stored-procedures gridview data-binding


【解决方案1】:

抱歉,为时已晚。但这发生在我身上。唯一有效的解决方案是:

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

评论 ORDER BY。这让它变慢了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-15
    • 2020-07-23
    • 2013-07-11
    • 2014-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多