【问题标题】:Response.Clear() equivalent in TSQLSQL 中的 Response.Clear() 等效项
【发布时间】:2013-03-20 17:21:26
【问题描述】:

TSQL 中是否有与 ASP.NET Response.Clear() 等价的东西?

在某些情况下,我需要从之前选择的缓冲区中删除结果集。

编辑:

update [ViewCounts] set [SiteViews] += 1  OUTPUT INSERTED.SiteViews 
where  [PageID] = @PageID AND [LastIP] <> @IP


    IF @@ROWCOUNT = 0
    BEGIN

    --- Need to clear the the empty (OUTPUT INSERTED.SiteViews) buffer here, as it crashes the Entity Framework

    select [SiteViews] from [ViewCounts]  where  [PageID] = @PageID

    END

【问题讨论】:

  • 您是否考虑过在表变量或临时表中累积(预期)结果?经过适当的分析,您可以根据需要返回或删除它们。
  • 你的问题其实不是很清楚。
  • @HABO 这就是我现在所做的,这是一种尴尬的方式。
  • 我从来没有需要这样做,所以如果你可以添加一个场景/代码来展示你将如何使用它,那将非常有趣。
  • @MikaelEriksson 查看编辑

标签: asp.net sql-server tsql


【解决方案1】:

您可以使用DBCC DROPCLEANBUFFERS 从缓冲池中删除所有干净的缓冲区

【讨论】:

  • 请注意:不要尝试在实时 SQL Server 实例上执行 DBCC DROPCLEANBUFFERS 虽然 DBCC DROPCLEANBUFFERS 是查询性能调整的必要 [第一步],但不应在实时 SQL Server 上运行导致索引和数据页从缓存中刷新的实例,从而使下一轮 DML 语句运行速度变慢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-04-30
  • 2021-05-13
  • 2023-03-07
  • 2020-07-22
  • 2010-12-25
  • 2015-03-27
  • 2013-12-27
相关资源
最近更新 更多