标签: sql-server

聚集索引与非聚集索引?

我负责一个较小的 DB 300+ 百兆 100'ish 表,大约有 45 个用户在整个工作日访问它。主要是阅读,但有相当数量的更新和插入。我一直在放慢学习数据库结构的速度,以便从中获得一些性能。我听说查看索引是一个很好的起点。所述数据库的表的所有大多数索引都是聚集的,其中一些是非聚集的。

集群与非集群相比有什么速度优势吗?我有一个维护计划(是的,我知道)在差异备份之前每晚重新组织和重建索引,这是否足够好,直到我更好地掌握索引的形成和利用?

是否有(a)个脚本可以帮助我查看各种索引的“性能”?我把自己弄进了多大的蠕虫罐头?

indexes performance sql-server sql-server-2005

5
推荐指数
2
解决办法
5694
查看次数

SQL Server 2008 跟踪标志 4135

有谁知道这个标志是做什么的?MSDN 上没有提到它。它不是列出 2008 年可用跟踪标志的文章的一部分。

有一篇知识库文章建议打开它以解决我们遇到的 SQL Server 2008 的特定问题,但我们希望至少在启用它之前知道此标志的作用。

http://support.microsoft.com/kb/960770

sql-server sql-server-2008

5
推荐指数
1
解决办法
1879
查看次数

为什么 sp_send_dbmail 在 SQL 代理作业中失败?

我有一个简单的查询,当帐户被禁用超过 30 天时,我运行该查询以向我们的 AD 帐户管理员发送电子邮件通知。当我自己运行它时,它工作得很好,以 SA 登录,但在 SQL Server 代理作业中运行时它会失败。

这是查询,替换了特定于业务的项目和对象名称:

DECLARE @QueryString varchar(max)
SET @QueryString = 'Select TrackingTable.Username FROM dbName.Schema.TrackingTable inner join dbName.Schema.viewName on DisabledAccounts.username = viewName.username WHERE DATEDIFF(dd,DateDisabled,GETDATE()) > 25 AND viewName.OU = ''InactiveAccounts'''
EXEC msdb.dbo.sp_send_dbmail  @profile_name = 'Profile', @body = 'This is the body text. Nothing interesting here.
', @recipients = 'me@mydomain.tld', @subject='Account status update', @query = @QueryString, @importance = 'High'
Run Code Online (Sandbox Code Playgroud)

当我作为 SA 运行它时,消息被发送。在 SQL Server 代理作业中,我收到此错误:

Executed as user: DOMAIN\MemberOfDomainAdmins. Error formatting query, probably invalid parameters …
Run Code Online (Sandbox Code Playgroud)

sql-server sql-server-2008

5
推荐指数
1
解决办法
1万
查看次数

双跳窗口认证

在将凭据从用户传递到 IIS 然后从 IIS 传递到 SQL 时,我遇到了让 Windows 身份验证 (Kerberos) 工作的问题。我已经为 SQL 设置了 SPN,并将 IIS 服务器帐户设置为允许委派。

如果我将 IIS 计算机帐户设置为允许委派任何服务,则它可以工作: 替代文字

但是,如果我为特定服务设置它,则不会传递凭据,并且我收到有关与匿名用户连接的错误:

替代文字

正如您所看到的,我正在连接到 SQL Express 实例,并且我已经设置了许多 SPN 来尝试解决这个问题,但其中任何一个都不走运。显然,它在允许任何服务时工作的事实告诉我,此服务列表中缺少其他内容,但我不知道是什么!

iis windows-server-2008 kerberos sql-server

5
推荐指数
1
解决办法
2809
查看次数

将日志传送到现有数据库

我们有几个大型数据库希望在 SQL Server 2008 上进行日志传送。不幸的是,主服务器和辅助服务器之间的链接速度足以处理日志传送,但初始备份/复制会占用带宽数天,甚至数周,这如果可能的话,我们希望避免。

我们通过将主数据库备份到硬盘并将硬盘物理带到辅助机器并在那里恢复数据库来制作副本(现在已经有几天了)。

主服务器和辅助服务器位于不同的地理位置。主服务器在 SQL Server 2008 上,辅助服务器在 2008 R2 上(不要问为什么!)

如果不从头开始备份/复制/恢复过程,我们似乎无法找到使日志传送(或镜像)工作的方法。

任何想法/解决方案将不胜感激。

log-shipping sql-server sql-server-2008 sql-server-2008-r2

5
推荐指数
2
解决办法
5309
查看次数

MS SQL Server 2008:如何将所有表导出为 CSV?

我必须从 MS SQL Server 迁移,现在创建一个新的 ORACLE 数据库,其中的数据部分来自我的旧表。

为此,我需要从数十个表中获取数据作为 Unicode CSV 或 TXT 文件,字段以“|”分隔。

不好的是,MS SQL Server 的默认导出大师一次只能导出一个表,并且为每个表配置导出选项需要相当长的时间。我开始手动导出它们,但在第 10 桌时我神经紧张。

您知道如何将所有表从 SQL Server 导出为 csv 或 txt 的方法吗?

export csv sql-server sql-server-2008

5
推荐指数
1
解决办法
2万
查看次数

如果 ldf 文件已被删除,如何恢复 SQL Server 数据库

我们有一个驱动器死机并丢失了 ldf 文件,但 mdf 文件完好无损。考虑到 ldf 丢失,是否有重新连接到 mdf 文件的过程?我没有太多运气进行了搜索。

disaster-recovery sql-server

5
推荐指数
2
解决办法
1432
查看次数

导出 SQL Server 数据库的最简单方法

使用 SQL Server 2008,如何将数据库导出到 mdf 以便我可以将其附加到另一台机器上?(使用“附加”)

我尝试将其分离(与 attach 的英文相反),但效果不佳。

编辑:我没有对“[SQL Server 根路径]\DATA\”中已有的 mdf 文件的写访问权限

backup sql-server

5
推荐指数
2
解决办法
1397
查看次数

连接到 Sql-Server 时密码是否以明文形式发送?

我今天被问到这个问题,老实说我不知道​​答案。如果你使用一个连接字符串,而不SSPI连接到一台服务器有什么办法第三方可以拦截在电线上的密码用于登录?

"Data Source=MyServer;Initial Catalog=MyDatabase;User Id=sa;Password=CanThisBeSniffed;"
Run Code Online (Sandbox Code Playgroud)

我不是在询问 MiTM 攻击,只是有人在同一台计算机上或网络上的同一集线器上列出了 Wireshark 或类似的东西。

我自己启动了wireshark,并没有以纯文本形式看到它,但这可能是一个简单的混淆或适当的加密,我只是想知道哪个。

security sql-server connection-strings

5
推荐指数
1
解决办法
8510
查看次数

Windows Server 群集和奇怪的夏令时行为

周末(3 月 27 日星期日)爱尔兰开始实行夏令时,因此我们生产环境中的所有服务器(全部为 win2k3 服务器)都更新了时间 +1 小时。然而,我无法解释的事情导致我们的集群节点中有 2 个更新 @ 02:08 和 02:38 而不是 @ 00:59。

我们的生产环境中有 2 个域。

  • DOMAIN1 包含 PDC1 + 6 或 7 个虚拟机。(独立 Web、加载 Bal、文件服务器)
  • DOMAIN2 包含 PDC2 + 2 个物理服务器,它们为 SQL Server 聚集在一起

在 DOMAIN1 中,所有机器在 exacly 00:59:59-> 上向前移动 1 小时,一切似乎都运行良好02:00:00。这可以通过查看任何这些服务器上的日志文件中的时间戳或查看这些服务器写入数据库表的时间戳数据来确认。

然而,在 DOMAIN2 中,发生了一些奇怪的事情。

  • DB_NODE_1 上的 SQL Server 代理实例中的作业显示发生在 @ 02:08 的时间更改。即有每分钟作业显示 02:08 和 03:09 的开始时间
  • DB_NODE_2 上的 SQL Server 代理实例中的作业显示发生在 @ 02:38 的时间更改。即每分钟的作业显示开始时间为 02:38,然后是 03:39

依赖 SQLGetDate()函数的两个实例上的数据库插入也是如此。数据显示两个实例上的getdate() 插入分别在 …

windows-server-2003 cluster daylight-saving time sql-server

5
推荐指数
1
解决办法
611
查看次数