我正在努力优化相当大的 SQL Server 2008 集群上的负载,并且我有一个在短时间内提交到服务器的查询示例。这相当于大约 170 万个查询,我正在努力确定有多少是一次性的即席查询,有多少基本相同并且由应用程序经常提交,以便首先优化最高使用率和最高资源密集型查询。
为此,我希望使用查询哈希和查询计划哈希,并将它们添加到我的分析表中。SQL 服务器中的 DMV 仅将这些值保留几分钟(可能会更长一些,具体取决于内存使用情况),因此我无法查询 DMV 以提取哈希值。我知道可以使用 SET SHOWPLAN_XML 选项一次生成一个哈希值,但这并不完全友好,因为必须打开 showplan,返回并解析结果,然后关闭 show plan 以保存到表中。
我希望有一个未记录的函数可以生成 2 个哈希并返回一个我可以存储到表中的值;到目前为止,我还没有找到一个。有谁知道这样的功能?