MSSQL获取所有SESSION_CONTEXT变量

时间:2018-06-20 07:50:37

标签: sql sql-server session-variables sql-server-2016

如何获取所有SESSION_CONTEXT变量的列表,或者检查是否有任何变量设置为会话上下文?

据我所知,未将变量设置为会话上下文时,SESSION_CONTEXT返回NULL。由于变量也可以获取NULL值,因此无法确切确定是将变量设置为上下文变量还是否。

EXEC sp_set_session_context 'varnull', null
SELECT SESSION_CONTEXT(N'varnull')   -- returns NULL and variable EXISTS
SELECT SESSION_CONTEXT(N'varnoset')  -- returns NULL and variable DOES NOT EXIST

1 个答案:

答案 0 :(得分:1)

exec sp_set_session_context @key, null 

上面的语句实际上从 SESSION_CONTEXT 中删除了带有@key的条目,并减少了 SESSION_CONTEXT 中的 entries_count 。总体内存使用情况和条目数可以通过

进行监控
SELECT * FROM sys.dm_os_memory_cache_counters WHERE type = 'CACHESTORE_SESSION_CONTEXT'; 

我认为在当前版本的SQL Server中,不可能获得SESSION_CONTEXT的完整键列表