禁用 SQL Server 后如何重新启用预读(预取)功能?

use*_*199 4 sql-server

在 Microsoft SQL Server 中,我使用以下方法禁用了预读(预取)功能

    DBCC TRACEON(652,-1)
Run Code Online (Sandbox Code Playgroud)

但是有人知道如何启用预读功能吗?

在我禁用预读之前,使用

    set statistics io on
Run Code Online (Sandbox Code Playgroud)

我得到这个结果:

    Scan count 1, logical reads 529, physical reads 4, read-ahead reads 1192
Run Code Online (Sandbox Code Playgroud)

现在在使用上面的 DBCC 查询禁用预读后,我得到了这个:

    Scan count 1, logical reads 44, physical reads 19, read-ahead reads 0
Run Code Online (Sandbox Code Playgroud)

我希望能够自由禁用/启用预取功能,以便我可以在不同的查询之间进行比较。我到处搜索,但没有找到答案......有人知道如何重新启用它吗?谢谢!

Pau*_*ite 13

您需要做的就是在全局范围内关闭跟踪标志:

DBCC TRACEOFF (652, -1);
Run Code Online (Sandbox Code Playgroud)

不需要重新启动服务

要仅控制当前会话的预读,只需省略-1.

DBCC TRACEON (652);
...
...tests
....
DBCC TRACEOFF (652);
Run Code Online (Sandbox Code Playgroud)

此跟踪标志仅进行最低限度的记录,因此对于隔离测试系统上的教育目的以外的任何内容,联系 Microsoft 支持以获得建议是有意义的。

注意:QUERYTRACEON对跟踪标志 652 无效。