gpt4 book ai didi

sql - 如何在 SQL 存储过程中实现日志记录和错误报告?

转载 作者:行者123 更新时间:2023-12-04 13:54:18 27 4
gpt4 key购买 nike

背景

我目前正在开发一个大量使用 SQL 存储过程的项目。有些表每天执行多达几十万个过程。因为该项目为我们的客户日志服务提供关键业务功能,快速错误检测至关重要。

问题

如何在 SQL 存储过程中同时实现快速可靠的日志记录和错误报告?

最佳答案

目前这对您没有帮助,但 SQL Server 2008 上的人可能会感兴趣。在 SQL Server 2008 上,XEvents 可用于将所有错误详细信息(包括语句文本)记录到一个中央位置。

IF EXISTS(SELECT * FROM sys.server_event_sessions WHERE name='ErrorLogger')
DROP EVENT SESSION [ErrorLogger] ON SERVER;
CREATE EVENT SESSION [ErrorLogger]
ON SERVER
ADD EVENT sqlserver.error_reported(
ACTION (sqlserver.sql_text)
WHERE (([severity]>(10))))
ADD TARGET package0.asynchronous_file_target(
SET filename='c:\temp\error_logger.xel', metadatafile='c:\temp\error_logger.xem')
WITH (MAX_MEMORY = 4096KB, EVENT_RETENTION_MODE = ALLOW_SINGLE_EVENT_LOSS,
MAX_DISPATCH_LATENCY = 30 SECONDS, MAX_EVENT_SIZE = 0KB,
MEMORY_PARTITION_MODE = NONE, TRACK_CAUSALITY = OFF, STARTUP_STATE = ON)

ALTER EVENT SESSION [ErrorLogger] ON SERVER STATE = START

并检查错误
SELECT CONVERT (XML, event_data) AS data
FROM sys.fn_xe_file_target_read_file ('C:\Temp\error_logger*.xel', 'C:\Temp\error_logger*.xem', NULL, NULL)

关于sql - 如何在 SQL 存储过程中实现日志记录和错误报告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3318695/

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