【问题标题】:Capture Linked server queries using SQL Extended Events使用 SQL 扩展事件捕获链接服务器查询
【发布时间】:2019-04-18 18:52:29
【问题描述】:

我尝试了许多事件类型,但无法实现链接服务器的日志记录。 我可以找出所有其他数据库的事件,但链接服务器没有运气。 有什么建议 ?

【问题讨论】:

    标签: sql-server linked-server extended-events


    【解决方案1】:

    您可以使用OLEDB_DATA_READ 事件来跟踪对链接服务器的查询。如果此事件的结果比您想要的更详细,您可能需要添加过滤器来捕获所需的特定信息。以下 DDL 创建此扩展事件并可能需要调整选项(即FILENAMEMAX_MEMORY 等)。

    CREATE EVENT SESSION [XE_Linked_Server_Test] ON SERVER 
    ADD EVENT sqlserver.oledb_data_read
    ADD TARGET package0.event_file(SET FILENAME=N'C:\Test\XE_Output_File.xel')
    WITH (MAX_MEMORY=4096 KB,EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS,MAX_DISPATCH_LATENCY=30 SECONDS,
    MAX_EVENT_SIZE=0 KB,MEMORY_PARTITION_MODE=NONE,TRACK_CAUSALITY=OFF,STARTUP_STATE=OFF)
    GO
    

    【讨论】:

    • 嘿,感谢您的回复,它的工作。唯一的问题是它为单个查询创建多个(20+)行。有什么想法吗?
    • 我打赌OPENQUERY语句是在嵌套循环连接中,所以它被多次调用?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-04
    • 1970-01-01
    • 1970-01-01
    • 2015-06-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多