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
    • 最新
    • 标签
主页 / dba / 问题 / 72305
Accepted
cbmeeks
cbmeeks
Asked: 2014-07-25 11:48:35 +0800 CST2014-07-25 11:48:35 +0800 CST 2014-07-25 11:48:35 +0800 CST

我们是否适合 SQL Server Enterprise 和表分区?

  • 772

我们目前有一个包含数百万条记录(最大表中有 1400 万条记录)的生产数据库。

数据库的一个功能是提供时间表信息,因此单个表可以有 200 万个时间表,但连接到其他 5 个“详细信息”表,每个详细表都有 500k 到 14m 的记录。

此外,我们正在运行一些无法在短期内更改或更换的遗留软件。我们遇到的问题是,不幸的是,有些查询(也是遗留的且无法更改)正在执行大量表扫描。因此,查找 100 个时间表会导致扫描数百万行。

我不是专业的 DBA,但我相信我已经用尽可能多的逻辑和研究为我可能索引的所有内容建立了索引。另外我相信我已经设置了适当的重新索引工作等。

我们SQL Server 2008 (10.0.5500.0)在一台有 32GB RAM(16GB 专门用于 SQL Server)的机器上运行。机器上没有太多其他东西,所以大部分资源都用于 SQL Server。

我们的下一个计划是可能向机器添加更多 RAM,并可能将 SQL Server 使用的 RAM 增加到 32GB。我们的数据库大小在磁盘上约为 56GB。

我的问题是,您认为我们应该考虑升级到 SQL Server 2014 Enterprise 以便我们可以对时间表进行分区吗?我是表分区的新手,但据我了解,它可能用于按站点和年份对我们的表进行分区?这样 1400 万行将被 10-20 个站点拆分,然后按年份进一步拆分,这样查询将扫描 10k-20k 行而不是 1400 万行。或者我只是完全错过了这里的标记?

欢迎任何其他建议。

谢谢你。

sql-server performance
  • 4 4 个回答
  • 314 Views

4 个回答

  • Voted
  1. Best Answer
    Mark Storey-Smith
    2014-07-25T12:33:25+08:002014-07-25T12:33:25+08:00

    我的问题是,您认为我们应该考虑升级到 SQL Server 2014 Enterprise 以便我们可以对时间表进行分区吗?

    不,绝对不是。在 8 核的袖珍服务器上,您将花费大约 5 万美元,而且不太可能看到任何好处。

    我建议按以下顺序尝试:

    1. 增加分配给 SQL Server 的内存。您说服务器是专用的,但只分配了一半的 RAM。32GB服务器,分配28GB。
    2. 将服务器内存升级到 [数据库大小] + 4GB。
    3. 在 dba.se 上发布问题查询。
    4. 聘请专家。
    • 9
  2. Pieter Geerkens
    2014-07-25T12:06:29+08:002014-07-25T12:06:29+08:00

    在最大的表中有 1400 万行和 16GB 的 RAM 专用于 SQL Server,听起来整个数据库几乎都适合内存。如果这是真的,问题很可能是查询中的二次(或更糟)行为,只能通过重写最严重的违规行为才能真正解决。

    也就是说,我会尝试以下一项或两项:

    1. 向服务器添加一些 SSD RAM,专门用于最大表的索引;和
    2. 添加更多的磁盘(不是更多的磁盘空间,更多的实际磁盘)以便有更多的磁头和轴服务于大量的表扫描。

    我相信这些比分区数据表更有可能为您提供增量性能改进。

    • 1
  3. user41207
    2014-07-26T12:32:37+08:002014-07-26T12:32:37+08:00

    如果您没有 DBA,很可能服务器没有根据简单但关键的最佳实践进行配置。在你完成之前,你无法真正做出明确的诊断。

    参与和专家评估需要完成的工作。然后要么做出改变,要么让他们去做。

    • 1
  4. James Z
    2014-07-26T23:54:30+08:002014-07-26T23:54:30+08:00

    你的索引和表格最近维护了吗?你的统计数据是最新的吗?碎片化和错误的统计数据会导致大问题。

    • 0

相关问题

  • 死锁的主要原因是什么,可以预防吗?

  • 如何确定是否需要或需要索引

  • 我在哪里可以找到mysql慢日志?

  • 如何优化大型数据库的 mysqldump?

Sidebar

Stats

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

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

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

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve