我们即将对现有的 Sql 2008 Server 进行硬件升级。因此,我正在查看有关硬件的一些最佳实践,例如 HD 的 RAID 级别,并确保 TempDB 位于与 DB 不同的磁盘上,等等。
然后我在这里和这里偶然发现了这两篇文章。他们谈论确保我们的 Windows 2008 服务器具有正确的分区偏移量 大小。
看完这些帖子我有点困惑。他们在不同的地方提到..
默认情况下,Windows Server 2008 对齐分区。
所以,如果我希望有 64K 的分区大小,我需要担心这个吗?请记住,我将重新安装 Windows Server 2008 .... 我不记得在安装过程中看到任何选项,当我们对磁盘进行分区时,用于分区对齐/大小。
任何人都可以用外行的话解释一下吗?
**注意:我不是在谈论 C:\ == 50Gig 大小、D:\ == xxxGig 等。不是那种类型的分区。
提前:对不起,问题的长度......无法在细节和简洁之间取得适当的平衡。
我们的 Web 应用程序的数据库服务器存在问题,其中应该(并且通常会)在很短的时间内(< 10 毫秒)运行的查询在随机情况下需要 1 到 30 秒的时间来执行 - 没有明显的图案。根据我们的分析器跟踪,其中一些甚至是“无所作为”的查询,例如"exec sp_reset_connection"(通常在 0ms 内运行;观察到 3~6s 的峰值)"SET NO_BROWSETABLE ON",等等。一些示例是:
SELECT * FROM [Localisation].[TimeZoneRule] WHERE [Name] = 'EU'
Run Code Online (Sandbox Code Playgroud)
其中TimeZoneRule5 列大约有 500,000 行。有一个代理主键和一个索引Name。通常需要 0.97ms,在 11s 达到峰值。表永远不会写入(在上线之前预先填充)。Profiler 将其记录为占用 0-15 个 CPU、18-25 个读取、0-1 个写入(不知道为什么要写入)。
UPDATE [Core].[User] SET [LastUsed] = GETUTCDATE() WHERE Id = '<uid>'
Run Code Online (Sandbox Code Playgroud)
其中User大约 10 列(其中之一是 Xml 列)有大约 30,000 行。Id是集群主键。表定期写入和读取。通常需要10~20ms,在26s达到峰值。Profiler 将其记录为占用 0 个 CPU、15-36 次读取、0-1 次写入。
INSERT INTO [Log].[Session] (ASPSessionId, Start, …Run Code Online (Sandbox Code Playgroud) 我在 Windows 2008 服务器上设置了 sql server express 2008。我已经完成了 sql 中的所有标准内容以允许远程连接。奇怪的是,如果我禁用 Windows 2008 服务器防火墙 .. 它的工作原理。
我在服务器防火墙上打开了一个端口为 1433。并且启用了tcp,是否还有其他一些我不知道的端口..我也打开了1434 ...
在 TCP 属性下,我为 ip 启用了 tcp(当然这部分必须是 owrking,好像我禁用了防火墙一样)并且端口号留空,动态端口为 0
我尝试将端口号设置为 1434 并将动态端口设置为空白。
还是没有快乐。
我有运行的 sql 浏览器服务器和命名管道..
我在没有防火墙的情况下通过 Sql 管理工作室从我的电脑运行我的测试。
我肯定错过了什么
真的很感激任何人都可以提供的任何帮助..我被卡住了
谢谢
我负责一个较小的 DB 300+ 百兆 100'ish 表,大约有 45 个用户在整个工作日访问它。主要是阅读,但有相当数量的更新和插入。我一直在放慢学习数据库结构的速度,以便从中获得一些性能。我听说查看索引是一个很好的起点。所述数据库的表的所有大多数索引都是聚集的,其中一些是非聚集的。
集群与非集群相比有什么速度优势吗?我有一个维护计划(是的,我知道)在差异备份之前每晚重新组织和重建索引,这是否足够好,直到我更好地掌握索引的形成和利用?
是否有(a)个脚本可以帮助我查看各种索引的“性能”?我把自己弄进了多大的蠕虫罐头?
有谁知道这个标志是做什么的?MSDN 上没有提到它。它不是列出 2008 年可用跟踪标志的文章的一部分。
有一篇知识库文章建议打开它以解决我们遇到的 SQL Server 2008 的特定问题,但我们希望至少在启用它之前知道此标志的作用。
是否有任何简单的方法可以找出与 SQL Server 或 Windows Server 2008 的运行副本相关联的许可证?
我订阅了 technet 和 MSDN,但有时如果我需要在短时间内快速启动测试环境,我也会使用试用软件。我有所有软件的大量合法许可证(它们都只是用于测试/开发),但我不希望我的“试用许可证”之一意外过期......我怎么知道我是否正在运行试用版与否?
设置可以在多个虚拟服务器之间轻松重复的 SQL Server 部署的最佳方法是什么?微软是否为此提供了一些东西,或者 Powershell 脚本?
我正在编写 SQL Server 作业,它需要一个所有者帐户。我正在使用 SQL Server 2008 企业版。我输入“localsystem”,然后使用检查名称功能让系统自动验证我输入的帐户是否正确。
检查名称返回后,帐户变为 NT AUTHORITY\SYSTEM。我的问题是,帐户 localsystem 和 NT AUTHORITY\SYSTEM 是否相同?我使用 Windows Server 2003 x64 Enterprise 作为主机操作系统。
提前致谢,乔治
我们使用 Windows 身份验证连接到我们的内部 SQL Server 实例(2005 和 2008 的混合)。
当我打开 SQL Server Management Studio 并连接到服务器时,它显然使用我当前的域凭据连接了我。
是否可以以某种方式覆盖它并以替代域用户身份登录?
目的是检查用户是否已正确设置并可以访问我希望他们访问的数据库。
我知道我可以以他们的身份登录到 Windows 会话,然后这样做,但这似乎有点乏味。
我有一台安装了 SQL Server 2008 并允许远程连接的远程 PC。
我是 PC 上的管理员用户并已远程连接到 SQL Server,我正在尝试从备份中恢复数据库,但我尝试在服务器上执行的任何操作都被拒绝!
我可以将自己添加为 SQL 数据库的登录名,但只能使用公共服务器角色!
服务器设置为以本地帐户登录,我也运行了 SQL Server 浏览器!
我做错了什么或错过了什么?
sql-server ×10
performance ×2
alignment ×1
deployment ×1
firewall ×1
indexes ×1
licensing ×1
partition ×1
sql ×1