use*_*632 3 sql-server extended-events
如何将查询哈希字符串“0x9F37D9B585242D49”转换为扩展事件过滤器所需的 uint64?由于值变为负值,转换为 bigint 不起作用。
event
sql_statement_completed
filter
field : sqlserver.query_hash
operator : equal_uint64
value ???
Run Code Online (Sandbox Code Playgroud)
TSQL 没有无符号 64 位整数,但 .NET 有。
var hash = 0x9F37D9B585242D49;
Console.WriteLine(hash);
Run Code Online (Sandbox Code Playgroud)
输出
11472877949395676489
Run Code Online (Sandbox Code Playgroud)
您还可以过滤query_hash_signed
并提供一个有符号的 64 位整数,TSQL 可以生成该整数
select cast(0x9F37D9B585242D49 as bigint)
Run Code Online (Sandbox Code Playgroud)
输出
-6973866124313875127
Run Code Online (Sandbox Code Playgroud)