如何记录长时间运行的查询 (ODBC)

提供完整的示例,说明如何创建长时间运行的查询日志文件。完整的示例代码位于 LogLongRunningQuery.cpp 文件中,可以从 MSDN 上的 SQL Server Downloads(SQL Server 下载)页下载此文件。此示例是使用 Microsoft Visual C++ 2005 开发的,并且是针对 ODBC 版本 3.0 或更高版本开发的。

安全说明安全说明

请尽可能使用 Windows 身份验证。如果 Windows 身份验证不可用,请在运行时提示用户输入其凭据。不要将凭据存储在一个文件中。如果必须保存凭据,应当用 Win32 crypto API(Win32 加密 API)加密它们。

使用 ODBC 管理器记录长时间运行的查询

  1. 在**“控制面板”中,双击“管理工具”,再双击“数据源 (ODBC)”**。(或者,也可以从命令提示符处运行 odbcad32.exe。)

  2. 单击**“用户 DSN”“系统 DSN”“文件 DSN”**选项卡。

  3. 单击要记录其长时间运行的查询的数据源。

  4. 单击**“配置”**。

  5. 在 Microsoft SQL Server 配置 DSN 向导中,导航到具有**“将长时间运行的查询保存到日志文件”**的页面。

  6. 选择**“将长时间运行的查询保存到日志文件”。在该框中,放置应记录长时间运行的查询的文件的名称。或者,单击“浏览”**以便浏览文件系统以找到查询日志。

  7. 在**“长查询时间(毫秒)”**框中设置以毫秒为单位的查询超时间隔。

以编程方式记录长时间运行的查询数据

  1. 使用 SQL_COPT_SS_PERF_QUERY_LOG 以及长时间运行的查询日志文件的完整路径和文件名调用 SQLSetConnectAttr。例如:

    C:\\Odbcqry.log
    
  2. 使用 SQL_COPT_SS_PERF_QUERY_INTERVAL 调用 SQLSetConnectAttr,并且设置为以毫秒为单位的超时间隔。

  3. 使用 SQL_COPT_SS_PERF_QUERY 和 SQL_PERF_START 调用 SQLSetConnectAttr,以便开始记录长时间运行的查询。

  4. 使用 SQL_COPT_SS_PERF_QUERY 和 SQL_PERF_STOP 调用 SQLSetConnectAttr,以便停止记录长时间运行的查询。