我对幽灵清理过程的理解是,每五秒它就会寻找删除索引中的幽灵记录。因此它不会使系统过载,它一次只能“清理”大约十页。
那么,这意味着它每五秒只清理大约 8 万条记录吗?似乎我的索引总是充满了幻影记录,清理工作永远不会完成。
所以,假设我运行了一次删除,可能是一百万行,而这几百万行的索引记录的大小大约为 8Gb。所以大约是 80k 差异的 100,000 倍。这是否意味着幽灵清理过程将需要 500,000 秒或几乎六天才能完成?
显然我在这里遗漏了一些东西,因为清除幻影记录需要那么长时间是没有意义的。那么达到相同索引的其他活动呢?鬼清理过程是否会导致等待,或者必须等待其他进程?
[这个问题是由我们在 OpsMgrDW 中看到的性能问题引起的,我们想了解更多关于这个过程的信息]
我注意到运行 SQL Server 2008 的 8 CPU 数据库服务器上的 CPU 使用率根本不平衡。
以下是前一段时间随机一天的 1 天平均值,这是典型且始终不对称的:
(这里只有缩略图,因为图片真的很高,但点击查看全尺寸图片)
我们的4-CPU Web服务器,这些都是几乎完全和完美的平衡相比,所有的时间,让我吃惊的奇怪。
现在,这是一个专用服务器,因此唯一在其上运行的是 SQL Server 2008(以及我们大量使用的内置全文索引),所以我不确定为什么 CPU 使用率会如此不对称. 想法?
我无法使用 SQL Server Management Studio 连接到我的本地 SQL Server 2008 Express 实例。
我相信问题与我对连接协议所做的更改有关。在错误发生之前,我启用了共享内存并禁用了命名管道和 TCP/IP。然后我启用了命名管道和 TCP/IP,这就是我开始遇到问题的时候。
当我尝试使用 SSMS(使用我的 SQL 服务器系统管理员登录或使用 Windows 身份验证)连接到服务器时,我收到以下错误消息:
已成功与服务器建立连接,但随后在登录过程中出现错误。(提供程序:命名管道提供程序,错误:0 - 管道的另一端没有进程。)(Microsoft SQL Server,错误:233)
为什么它返回命名管道错误?为什么不只使用共享内存,因为它在连接协议列表中具有更高的优先级顺序?它似乎出于某种原因没有监听共享内存?
当我将命名管道设置为启用并尝试连接时,我收到相同的错误消息。
我的 Windows 帐户在我的计算机上没有管理员权限 - 也许这在某种程度上有所作为(正如这篇文章中关于“SuperSocketNetLib\Lpc”注册表项的一些讨论似乎暗示的那样)。
顺便说一下,我尝试重新启动 SQL Server 服务,还尝试让某人使用管理员帐户登录机器以重新启动 SQL Server 服务。仍然没有运气。
如何配置 IIS 将日志发布到 sql server?
如何将任何日志保存到我的网站。该网站有很多浏览量,而且数据可以在很短的时间内变得很大。此外,我想实时显示使用情况的分析。
将所有日志保存在 sql-server 中是否有意义?
采取这种方法有什么利弊?
我还能有什么其他解决方案?
我有一个使用 SQL Server Management Studio 2008 制作的链接服务器。
如果链接服务器目标更改,我将不得不更改它的属性以指向正确的位置。
但我不能 - 没有编辑选项!
我是否遗漏了什么,或者链接服务器不能改变?
我们sys.dm_exec_query_stats用来追踪慢查询和违反 IO 的查询。
这很好用,我们得到了很多非常有见地的统计数据。很明显,这不如运行探查器跟踪准确,因为您不知道 SQL Server 何时决定放弃执行计划。
我们有很多查询缓存了错误的执行计划。例如如下查询:
选择前 30 名
援助
FROM 帖子 a
加入帖子 q ON q.Id = a.ParentId
加入 PostTags pt ON q.Id = pt.PostId
哪里 a.PostTypeId = 2
并且 a.DeletionDate 为 NULL
并且 a.CommunityOwnedDate 为 NULL
AND a.CreationDate > @date
AND LEN(a.Body) > 300
AND pt.Tag = @tag
AND a.Score > 0
按 a.Score DESC 排序
问题是理想计划实际上取决于所选日期(理想计划的屏幕截图):

但是,如果缓存了错误的计划,则当日期范围很大时它会完全窒息:(注意大粗线)

为了克服这个问题,我们建议使用OPTION (OPTIMIZE FOR UNKNOWN)或OPTION (RECOMPILE)
OPTIMIZE FOR UNKNOWN导致一个稍微好一点的计划,这远非最佳。执行在sys.dm_exec_query_stats.
RECOMPILE结果是选择了最佳计划,但是 …
生产站点中使用了一个应用程序,该应用程序使用 SQL Server 2008 作为其 DBMS。
数据库模式使用 Filestream Varbinary 将二进制数据保存在文件系统上,而不是直接保存到数据库表中。
关键是时不时在开发机器上复制生产数据库会很有用,主要是为了进行故障排除。数据库太大了,无法轻松地移动它,但是如果可以移动它而忽略文件流 varbinary 字段就可以了。
换句话说,我正在尝试制作数据库的“不完美”副本:即,在目标数据库上,可以使用 NULL 值而不是 varbinary。这可能吗?我尝试在 SQL Server Management Studio 上寻找该功能并进行了排除包含文件流 varbinary 的文件组的备份,但我无法恢复:MSSMS 抱怨无法完成恢复,因为备份不完整(当然)。
是否有可能以某种方式实现我想要做的事情?
我正在尝试添加域用户。我正在做以下事情。
然后我收到以下错误:

我找到了http://support.microsoft.com/kb/324321。
我已经重新启动了服务器 (VM),但问题仍然存在。有任何想法吗?
编辑
我也有:
http://talksql.blogspot.com/2009/10/windows-nt-user-or-group-domainuser-not.html
编辑 2
我也有:
编辑 3
由于问题已转移到网站,我不再有权发表评论等...
我已经检查了服务器上的 dns 到它正在工作的机器上。两者的 DNS 服务器相同...
我正在尝试设置以下场景。我有3台服务器,它们都在同一个域中。
服务器 B 和 C 位于 SQL 群集中。B 和 C 的实例是链接服务器。
当我从 A 运行 SQL Server Management Studio 并使用我的域帐户 (dom\usr) 连接到 B 时,我尝试执行从 B 和 C 中选择数据的查询并且它工作正常。
当我尝试尝试相同的 Web 应用程序时,出现错误:
用户“NT AUTHORITY\ANONYMOUS LOGON”登录失败。
我看到 SQL 中的连接对用户 dom\web 具有 auth_scheme KERBEROS,因此它不是 NTLM。
此外,dom\web 域帐户在 AD 中没有选择“帐户是敏感的,不能被委派”选项。
我还认为 SPN 设置正确,因为双跳在第一种情况下不起作用。
这是服务器 C 上的错误:
源登录
用户“NT …
sql-server-2008 ×10
sql-server ×5
.net-4.0 ×1
analytics ×1
filestream ×1
iis-7.5 ×1
logging ×1
performance ×1
smp ×1
sql ×1