问题标签 [sqlcachedependency]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
76 浏览

mysql - 如何让我的存储过程变得又快又漂亮...(选择.选择.选择..)

我是初级 Ruby-mysql 程序员,我想知道如何使我的(存储过程)查询结果快速..

这是我的存储过程,我正在使用 SQL_CACHE.. 但我不确定.. 缓存使我的过程快速.. :(

幸运的是它现在不是太慢..但我想知道如何让它越来越快和漂亮的代码方式:(

0 投票
2 回答
1403 浏览

asp.net-core - .Net core SQL 缓存依赖

我正在尝试在 ASP.Net 核心应用程序中实现缓存。目前我已经实现的是内存缓存使用IMemoryCache,但我想要的是如果 SQL Server 2016 中的相应记录发生更改,缓存应该失效。我找到它的一种方法,但根据此链接SQLCacheDependency,它不是.Net Core的一部分

对此有什么想法吗?

0 投票
2 回答
442 浏览

asp.net - 一旦会话(在 Proc 中)在 ASP.Net 中超时,如何删除“用户特定的数据缓存”?

我们将会话超时设置为 1 小时:

它按预期工作。

与“会话”一起,我们创建用户特定的数据缓存以重用数据。

我们为每个登录用户使用唯一的缓存键:

我们将缓存的过期时间设置为:

但是一旦会话超时,我需要删除用户特定的数据缓存。

请帮帮我。

0 投票
1 回答
1028 浏览

c# - 连续两次调用SqlDependency.Start,第二次失败?

多次调用的目的SqlDependency.Start是确保在其他一些操作(例如SqlCacheDependency基于Command. 根据微软SqlDependency.Start在此处的文档https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldependency.start(v=vs.110).aspx(备注部分),看起来像调用SqlDependency.Start多次完全没问题:

具有相同参数的多个调用(调用线程中的相同连接字符串和 Windows 凭据)是有效的。

但实际上,第二次调用它可能会失败(实际上它对我来说从未成功过),使所有下一次调用SqlDependency.Start失败的尝试(通过返回静默false,不抛出异常)。

我所做的应该满足第一个限制(在上面链接的备注部分中提到),即所有调用SqlDependency.Start都具有相同的参数(实际上只有一个相同的参数是连接字符串)。它看起来像这样:

所以很难理解微软所说的(在备注部分的第一个限制中),这两个调用完全相同。但是由于第二次调用失败,之后使用的任何相同调用仍然会失败(这意味着一旦我尝试多次调用它,就没有机会成功启动它)。

当我在 Sql Server 中看到日志时,我可以看到有很多消息说找不到远程服务......因为它不存在

我不需要解决方案或解决此问题,我只需要解释为什么它不像微软所说的那样正常工作,或者我误解了微软所说的?

0 投票
0 回答
56 浏览

c# - “当前用户***没有权限。”,在使用SqlCacheDependency和HttpRuntime.Cache时出现。如何解决?

当我使用 SqlCacheDependency 将一些数据保存到HttpRuntime.Cache这样的地方时,出现以下运行时错误:

当前用户 uu163 没有权限。事务在触发器中结束。该批次已中止。

[SqlException (0x80131904): 当前用户 uu163 没有权限。事务在触发器中结束。批处理已中止。] System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action1 wrapCloseInAction) +2442126 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action1 wrapCloseInAction) +5736904 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) +628 System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet stateOjbjHandler, TdsParser , Boolean& dataReady) +3731 System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async, Int32 timeout, Boolean asyncWrite) +940 System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 完成, String methodName, Boolean sendToPipe , Int32 超时, Boolean asyncWrite) +272 System.Data.SqlClient.SqlCommand.ExecuteNonQuery() +280 System.Web.Caching.SqlCacheDependencyAdmin.SetupNotifications(Int32 flags,字符串表,字符串连接String) +752

如何解决这个错误?

0 投票
2 回答
342 浏览

caching - 具有 sql 缓存依赖的内存缓存

我正在尝试缓存已经存储在数据库中的应用程序资源等数据。

如何在 .NET Core 中使用 SQL 缓存依赖项实现内存缓存?

0 投票
2 回答
307 浏览

c# - 简单的 SqlCacheDependency

我读过的几乎每个教程似乎都错误地设置了SqlCacheDependency。我相信他们通常会将过时的轮询方法与查询通知方法混为一谈。

以下是众多示例中的两个:


根据我的测试,如果您使用的是代理(MSSQL 2015+),则不需要进行任何.config更改,也不需要进行任何 SqlCacheDependencyAdmin 调用(不需要定义表等)。

我简化只是这样做......

(不包括检查缓存是否为空的代码,因为这只是设置。我只想显示缓存的设置)

这似乎无需定义查询中涉及哪些表并在每个表上进行复杂的触发器即可工作。它只是工作。

更令我惊讶的是,查询规则有通知:

  • 创建通知查询(找不到比 2008 年更新的文档)似乎不适用。我打算在我的 SQL 中做一个 TOP 并且它仍然有效。

对于测试,我让它运行一个查询 1000 次,涉及一个名为“设置”的表。然后我更新表中的值并重复查询。

我在 Profiler 中查看任何涉及“设置”一词的查询,我看到查询只执行了 1 次(以设置缓存),然后发生更新语句,然后再次重新执行查询(缓存已失效,查询再次运行)

我担心在 2-3 个小时的努力中寻找正确的方法来做到这一点,我错过了一些东西,真的就这么简单吗?

我真的可以只输入我想要的任何查询并且它会起作用吗?我正在寻找我正在做一些危险/非标准的事情的任何指示,或者我遗漏的任何小字体

0 投票
0 回答
65 浏览

c# - 如何通过 mvc 中的 sql 查询自定义输出缓存操作过滤器

有什么方法可以根据 mvc 中表的 SQL 查询来缓存数据

我尝试了以下过滤器,它成功地缓存了基于 taskId 的列表,但是现在当包含此 taskid 的任何行更改需要从表中获取数据时。

(持续时间 = 300, VaryByParam = "taskId", SqlDependency="taskHistorySqlDependency:tblProjectTaskHistory")]

0 投票
0 回答
16 浏览

c# - 我正在尝试在表的特定列上创建 SQL 缓存依赖关系,但是当表的任何列发生更改时,数据都存储在缓存中

我想通过 c# 中的 SQL 缓存依赖关系仅在特定列更改时更新缓存。当表的任何字段发生更改时,我的缓存重新加载。