执行和显示 SQL 查询结果的最快轻量级方法

执行和显示 SQL 查询结果的最快轻量级方法

许多(如果不是大多数)应用程序都可以以某种人类可读的格式显示 SQL 查询的结果。但是,它们通常必须使用活动窗口打开(例如 SSMS 或 Excel,这两者都占用本地计算机上的大量系统资源),或者需要额外的开销来生成报告(SSRS 就是很好的例子)。我的平台是 Microsoft SQL 服务器。使用 SSMS 时,还存在一个问题,即您必须找到正确的查询,打开窗口并点击执行。

您将使用什么方法尽可能即时地执行具有任意内容的只读查询(可以是存储过程、动态查询、CTE 等)?显示格式可能非常小(几乎没有格式变化的简单表格),聚合数据不超过非常小的记录集(平均肯定低于 1000 条记录)。

我认为像 autohotkey 这样的程序可以实时完成这一任务。如果我可以将按键组合映射到查询,我就能非常快地得到结果。

以下是我试图避免的一个很好的例子:

我喜欢通过查询返回不超过 10 条记录的表来频繁检查登录系统的用户数。查看这些结果实际上应该只需不到一秒钟。但是,由于我将其存储在 SSRS 报告中,因此我必须导航到网站并完成报告生成过程,这可能需要 15-40 秒。我想为用户提供一种即时查看数据的方法。您将如何实现这一点?

答案1

我会创建一个只具有读取相关表权限的数据库用户,然后编写一个批处理文件,其中包含使用该用户的凭据和必要查询的 sqlcmd 调用。根据需要,我可能会对输出进行一些简单的解析,以生成带有自动刷新元标记的 HTML 文件,或者直接将结果转储到文本文件中。

然后,我会使用 AutoHotkey 脚本绑定按键来运行批处理文件并打开结果,或者为了获得更快的速度(但结果的即时性较差),我可能会定期将批处理文件作为计划任务运行,并使用按键序列来打开生成的文件。

(我不确定如何从命令行运行 SSRS 报告,但我确信存在一种方法,如果用户将随机访问它,那么我可能会按照计划运行它以降低负载,具体取决于需要支持的用户数量。)

相关内容