AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 32346
Accepted
John Rose
John Rose
Asked: 2009-06-27 09:37:01 +0800 CST2009-06-27 09:37:01 +0800 CST 2009-06-27 09:37:01 +0800 CST

SQL Server 2K/2K5/2K8 和固态磁盘:具体优化?

  • 772

有人在固态驱动器上运行 SQL Server 吗?有没有找到具体的优化技巧?我对降低 SQL Server 执行小型随机写入操作的频率的方法特别感兴趣,因为它们是 SSD 性能的克星,尤其是 MLC SSD 驱动器。

当然,可以做一些明显的优化:读取繁重的数据应该从 SSD 提供,而写入繁重的数据应该留给传统的旋转磁盘。这自然包括事务日志!

当然,如果有足够的预算,人们会希望使用 X25-E 或 Vertex Ex 系列等 SLC SSD 磁盘或各种企业级产品。但我也对可能有益于 MLC SSD 设置的技巧感兴趣。我认为这是一个有趣的领域。我的一个客户的客户预算很少,数据集却急剧增长,他们面临着近百个查询的完全重写,以保持良好的性能水平。然而,我有一个隐秘的怀疑,即不到 500 美元的 RAM 和 SSD 空间可能会比价值数千(可能数万)美元的开发人员时间获得更大的性能提升。

sql-server ssd
  • 5 5 个回答
  • 1382 Views

5 个回答

  • Voted
  1. Best Answer
    Paul Randal
    2009-06-27T09:47:14+08:002009-06-27T09:47:14+08:00

    不知道减少 SQL Server 执行的少量随机写入是什么意思。SQL Server 仅在检查点期间写出数据页 - 因此限制写入次数的唯一方法是更改​​检查点间隔或不要进行太多 IUD 操作。你的意思是别的吗?

    在我见过的所有 SSD 实现中(少数),这与您的建议相反 - SSD 的最佳用途似乎是用于写入繁重的事务日志和 tempdb - 基本上我最大的地方在哪里/O 子系统瓶颈并将 SSD 固定在那里 - 因为寻道时间和延迟减少到一个较低的常数。

    查看 MS 制作的这篇研究论文(遗憾的是没有详细介绍 SQL Server 细节):将服务器存储迁移到 SSD:权衡分析。

    希望这可以帮助!

    • 3
  2. pipTheGeek
    2009-07-06T06:07:54+08:002009-07-06T06:07:54+08:00

    您不能修改 SQL Servers IO 特性。对于数据文件,其磁盘访问的基本单位是一个 8Kb 页面。它将主要在检查点期间写入它们,但也会在可能的情况下懒惰地写入它们。
    SQL 不会等到数据盘的写入完成才返回,它只是必须完成的日志写入。如果您只能在磁盘上保留一个数据库日志,那么它将是顺序写入,并且在普通的快速硬盘上会很好。
    从 SQL 的角度来看,性能受到的影响是它必须读取磁盘。如果你能给它更多的内存,那么 SQL 将在内存中保存更多的数据页,这比任何类型的磁盘、SSD 或其他方式都快。显然,您还可以通过创建适当的索引来减少磁盘读取次数。我希望 SSD 也有助于这些读取,因为它们很可能是随机的并且等待驱动器磁头移动。
    我不知道我们在这里谈论的数据库大小,但是您可能想看看 HyperOS。他们制造的 sata 磁盘实际上只是负载 DDR2 内存条,并带有 SSD 或 2.5 英寸磁盘作为备份。那么服务器的访问模式就无关紧要了。我不会把日志放在这样的东西上。日志使您的数据保持一致,它们需要在可靠的介质上运行,尽管它有备用 SSD 和电池,而且服务器可能有 UPS 等,但我仍然会因为没有将日志放在真正的硬盘上而感到不安在某种容错 RAID 阵列中。

    • 2
  3. Massimo
    2009-06-27T09:50:15+08:002009-06-27T09:50:15+08:00

    由于磁头寻道延迟,小型随机操作是传统磁盘的克星……SSD 非常擅长解决这个问题。

    对于长时间的连续操作,标准磁盘的性能非常好,因此使用 SSD 没有任何意义(当然,从性能的角度来看)。

    • 1
  4. Kevin K
    2009-07-06T05:26:28+08:002009-07-06T05:26:28+08:00

    此处尚未添加到评论线程中,但如果您将 SSD 上任何内容的 DB 页面大小/多读取计数设置为 SSD 页面大小的倍数,这应该不是问题。

    我很长时间没有在 SQL Server 上工作过,所以我不确定这些选项是否可用。过去几年我一直在做 Oracle 和 DB2,这将解决您的顾虑,因为 DB 会根据磁盘特性进行适当调整。

    • 0
  5. GregC
    2009-07-07T17:07:24+08:002009-07-07T17:07:24+08:00

    我建议对齐存储数据库文件的分区。

    我还建议确定 RAID 0 上的性能(ldf 和 TempDB),并将关键数据放在 RAID 1(mdf)上。

    第三,您真的应该更新驱动器的固件以及 SATA 控制器固件/驱动程序。通过这样做,您可以让硬件公司及其开发人员有机会为您优化性能。

    • 0

相关问题

  • 从 MySQL 迁移到 SQL Server 的最佳方法或工具

  • 如何启用与 SQL Server 实例的加密连接?

  • Vanilla Powershell 是否足以成为 Windows 和 DB 服务器管理员的语言?

  • 在 SQL Server 中,何时应将 PRIMARY Data FileGroup 拆分为辅助数据文件?

  • 如何从 SQL Server 2008 中的备份中排除索引

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve