Questions tagged «storage»

有关数据库数据的持久存储的问题。

1
CLUSTER对性能的影响
我正在尝试优化我的Postgres 9.2数据库以加快具有日期限制的查询。 我有一timestamp列,但大多数情况下我都想找一天,所以我创建了一个timestamp要date解析的索引: CREATE INDEX foo_my_timestamp_idx ON foo USING btree ((my_timestamp::date) DESC); 现在,为了提高性能,我CLUSTER foo使用上面的索引表: CLUSTER foo USING foo_my_timestamp_idx; 根据SQL-CLUSTER上的手册,该表 根据索引信息进行物理重新排序 我想知道使用表PK(请说id_foo)对其他查询的性能是否有影响。有没有缺点?

2
数据库查询优化器是否意识到存储性能差异?
据我了解,SQL Server(或其他任何RDBMS)中的查询优化器并不了解数据库下面存储的性能,并且会像所有存储具有相同的成本一样做出决策。这是否准确,或者是否考虑了一些有关存储性能的知识? 在一个完全人为的示例中,假设我的表行以瞬时访问时间存储在SAN中的SSD驱动器上,其中索引存储在极度超载的SAS驱动器上,从而导致磁盘饱和和恒定的磁盘队列。当RDBMS生成执行计划时,是否比索引操作更可能支持表扫描(或者可能是瘦索引和关联的表查找,而不是覆盖索引,因为它在SAS磁盘上的IO更少)? 我怀疑答案是肯定的,“优化器不会聪明甚至不会意识到磁盘性能”,但是我只是想看看那里是否有人肯定知道。我正在使用SQL Server,但对任何数据库系统都感兴趣。

3
在对驱动器进行碎片整理之前停止SQL Server服务?
我们生产的SQL Server 2005数据库的数据文件位于单独的物理驱动器上,Microsoft Windows 2003的“磁盘碎片整理程序”工具报告该驱动器碎片为99%。 我们计划在周六上午3:00进行任务以对该驱动器进行碎片整理。40分钟后作业完成,没有明显的错误。但是,驱动器仍然严重碎片化。 进行碎片整理之前,我们是否应该已停止SQL Server服务? 语境 根据上下文请求:我们拥有一个Microsoft SQL Server 2005实例(9.00.5324.00),该实例在2007年左右的Dell PowerEdge 2950硬件上运行32位Windows Server 2003(SP2),具有4GB RAM。PowerEdge 2950具有四个配置为RAID-1的68GB驱动器,用于创建两个68GB虚拟磁盘:(1)C(引导和操作系统)和D(页面文件,其他各种数据);(2)E(SQL数据)。据我所知,IT人员从未对任何这些驱动器进行碎片整理...磁盘碎片整理程序报告文件碎片率分别为66%(C),77%(D)和99%(E)。性能监视器报告以下平均结果:“分页文件:使用百分比” = 〜6.8%;“ SQL Server:缓冲区管理器-页面预期寿命” = 20秒;和“ PhysicalDisk:平均磁盘秒/写入,驱动器E” = 300到1之间。我们需要在几个月内完成急需的硬件和SQL Server升级(即,新硬件,64位Windows Server 2012、64位SQL Server 2012、12GB RAM),但由于用户性能,要尽可能减轻问题。因此,考虑对文件进行碎片整理可能对驱动器E(主SQL数据驱动器)有所帮助。 顺便说一句,上周我们拉出了两个故障驱动器并重建了阵列...不确定这很重要。我们与另一个IT团队签约以维护服务器,因此我们无法直接访问设备...我们的组织只是为服务付费。 我们可以在定期安排的维护时段(每周)中提供停机时间,也可以在必要时在夜间进行带外停机。

4
SQL Server-在SAN上分离数据,日志和TempDB文件
我有一个连接到SAN的SQL Server。我们的新存储供应商建议所有LUN跨越整个磁盘阵列,即RAID5。我通常会向SAN管理员请求3个单独的LUN(数据,日志和TempDB),但是鉴于新供应商的建议,创建单独的LUN有什么意义吗?还是如果所有内容都在一个LUN中,因为它仍然可以覆盖所有磁盘,我是否会看到相同的性能? 很棒的文章在这里,但是并不能完全解决我的确切情况:http : //www.brentozar.com/archive/2008/08/sql-server-on-a-san-dedicated-or-shared-drives/

2
将TempDB拆分为多个文件,这些文件等于CPU的数量
《SQL Server tempdb最佳实践提高性能》一文建议,我应该将tempdb文件分割成与内核数相等的数量。因此,对于4个内核,您将获得4个文件。 通过拥有更多的文件,可以增加SQL Server一次可以推送到磁盘的物理I / O操作的数量。SQL Server可以将其下推到磁盘级别的I / O越多,数据库将运行得越快。使用标准数据库,SQL Server可以将所需的大量数据缓存到内存中。由于tempdb具有高写入特性,因此需要先将数据写入磁盘,然后才能将其缓存回内存。 尽管从理论上讲听起来不错,但总体上来说它真的那么好吗?它仅适用于IO非常高的特定系统吗?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.