小编buc*_*ley的帖子

是否可以为优化器提供更多或所有需要的时间?

考虑到优化器不能花它需要的所有时间(它必须最小化执行时间而不是贡献它)来探索所有可能的执行计划,它有时会被切断。

我想知道这是否可以覆盖以便您可以在需要时(或一定数量的毫秒)始终提供优化器。

我不需要这个(atm),但我可以想象一个场景,一个复杂的查询在一个紧密的循环中执行,你想提出最佳计划并事先缓存它。

当然,你有一个紧密的循环,你应该重写查询,这样它就会消失,但请耐心等待。

这更多是出于好奇而提出的问题,也是为了查看短路优化和完整优化之间有时是否存在差异。

事实证明,您可以使用跟踪标志 2301 为优化器提供更多时间。这不完全是我所要求的,但它很接近。

我在这方面找到的最佳信息是Ian Jose 的SQL Server 2005 SP1中的查询处理器建模扩展

小心使用这个跟踪标志!但是在提出更好的计划时它会很有用。也可以看看:

我正在考虑具有大量连接的查询,其中连接顺序的解决方案空间呈指数级增长。SQL Server 使用的启发式方法非常好,但我想知道如果优化器有更多时间(在几秒甚至几分钟的范围内),它是否会提出不同的顺序。

sql-server optimization

20
推荐指数
2
解决办法
2651
查看次数

Sql Server 代理是系统管理员角色的一部分,即使 Sql Server 说它不是

我创建了一个除域用户之外没有额外权限的 Windows 帐户,并使用 SQL Server 配置管理器将其设置为 SQL Server 代理服务帐户。

BoL/MSDN 表示该用户应该是 sysadmin 角色的一部分才能工作,但目前我还没有采取任何操作来实现这一点。

我预计该帐户无能为力,但看起来它是......系统管理员!如果您将以下语句放入作业步骤中,它将确认这一点:

IF IS_SRVROLEMEMBER ('sysadmin') = 1 print 'sysadmin'
Run Code Online (Sandbox Code Playgroud)

该作业步骤是一个 t-sql 步骤,所有者为 sa,因此使用 SQL Server 代理服务帐户。

现在回答这个问题。SQL Server 配置管理器似乎做了一些事情,使其成为系统管理员,或者至少在执行该步骤时如此。但同时它不会显示在 GUI 中的系统管理员列表中。

我提出的所有报告或查询(包括 SSMS)均未将此 Windows 帐户列为 sysadmin 角色的一部分。

我有一种感觉,我正在忽略某些东西。

security sql-server permissions sql-server-agent

6
推荐指数
1
解决办法
1212
查看次数