gpt4 book ai didi

sql-server - 在 SQL Server 的表中查找查询次数最多的项目

转载 作者:行者123 更新时间:2023-12-03 09:55:29 25 4
gpt4 key购买 nike

我们有一个 SQL Server 数据库,其中包含由代码组成的表。有点像

Ticker | description
-------+-------------
USDHY | High yield
USDIG | Investment grade ...

现在我们有很多其他表格,其中包含与这些代码(时间序列)对应的数据。我们希望能够创建一个报告,该报告可以向我们展示哪些代码被更多地查询,哪些根本没有被查询。这可以让我们有选择地为更频繁使用的代码运行一些程序,并定期忽略其他程序。

有没有什么方法可以在 SQL 中实现这一点,任何可以在一段时间内生成此统计信息的报告,比如 n 个月。

非常感谢任何帮助

最佳答案

目前似乎没有答案。正如我提到的,一种可能性是使用如下所示的扩展事件:

CREATE EVENT SESSION [TestTableSelectLog]
ON SERVER
ADD EVENT sqlserver.sp_statement_completed (
WHERE [statement] LIKE '%SELECT%TestTable%' --Capure all selects from TestTable
AND [statement] NOT LIKE '%XEStore%' --filter extended event queries
AND [statement] NOT LIKE '%fn_xe_file_target_read_file%'),
ADD EVENT sqlserver.sql_statement_completed (
WHERE [statement] LIKE '%SELECT%TestTable%'
AND [statement] NOT LIKE '%XEStore%'
AND [statement] NOT LIKE '%fn_xe_file_target_read_file%')
ADD TARGET package0.event_file (SET FILENAME=N'C:\Temp\TestTableSelectLog.xel');--log to file

ALTER EVENT SESSION [TestTableSelectLog] ON SERVER STATE=START;--start capture

然后您可以使用 sys.fn_xe_file_target_read_file 从文件中选择:

CREATE TABLE TestTable
(
Ticker varchar(10),
[Description] nvarchar(100)
)

SELECT * FROM TestTable

SELECT *, CAST(event_data AS XML) AS 'event_data_XML'
FROM sys.fn_xe_file_target_read_file('C:\Temp\TestTableSelectLog*.xel', NULL, NULL, NULL)

应捕获 SELECT 语句。

也可以从 GUI(Management Studio 中的管理/扩展事件/ session )配置扩展事件。

关于sql-server - 在 SQL Server 的表中查找查询次数最多的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38795285/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com