标签: database-tuning

正确的数据库分区

我之前问过一个问题“存储用户事件数据的正确技术”,我认为正确的答案是创建一个数据库分区。现在,从我读到的内容来看,有不同的分区方法,但是对于这个问题,我们将假设我们正在使用 RDBMS(例如 MySQL)上的日期字段进行水平键分区...(如果您有异议或对此的争论,无论如何都做出贡献)。

基本问题是您如何知道要创建多少个分区?

我知道这是一个相当悬而未决的问题,因为它也将严重依赖于您运行它的硬件,但无论哪种方式,都应该有一些指导方针可以指出更好的性能在哪里,或者这样做的正确方法,甚至你会如何判断这样的事情?我发现的大多数文档都使用诸如“大”、“大”、“很多”之类的术语……这些术语在访问速度、行数、效率与存储或所需硬件方面的含义是什么。是不是从反复试验或观察到的性能开始,如果事情开始变得有点粗糙,您只需添加一两个分区?

我对大型数据库方案中这个看似常见的障碍的意见和矛盾非常感兴趣。

谢谢

database-design database-recommendation database-tuning partitioning

4
推荐指数
1
解决办法
503
查看次数

查找最近最少使用的mysql表索引

我正在清理 mysql 数据库中 (innodb) 表中的重复索引。该数据库有大约 50 个表。

虽然我可以使用 pt-duplicate-key-checker 检查重复键,但我想知道是否有一种工具可以帮助我从所有表中找出最近最少使用的索引。

例如。, 如果表 "A" 定义了三个索引 "index_1"、"index_2" 和 "index_3",并且其中 "index_3" 的使用频率最低,假设它每 1/10000 次对表进行的查询使用一次,则输出脚本或工具的名称应为“index_3”。

有没有好的方法或工具可以帮助我在数据库上运行此分析?

提前致谢。

mysql innodb index database-tuning

4
推荐指数
1
解决办法
1182
查看次数

创建 View 是否会给 DB 带来开销?

正如我的主题所暗示的那样,我想知道创建视图是否会在空间、存储、性能方面对数据库造成开销?

oracle database-recommendation database-tuning

4
推荐指数
1
解决办法
1956
查看次数

将内存释放回服务器重要吗?

我有一个在生产系统上运行的 SQL Server 2008 R2 实例。我不是 DBA;我更像是一名开发人员,但我的客户目前问我:将内存从 SQL Server 释放回服务器有多重要?如果我们将内存释放回操作系统,是否会影响对实例的后续查询的性能?

sql-server memory database-tuning sql-server-2008-r2

3
推荐指数
1
解决办法
353
查看次数

SHOW /*!50000 GLOBAL */ STATUS 有什么作用?

之间有什么区别

SHOW /*!50000 GLOBAL */ STATUS 
Run Code Online (Sandbox Code Playgroud)

SHOW GLOBAL STATUS
Run Code Online (Sandbox Code Playgroud)

我看到在一些脚本和调整演示中使用了第一个命令。有区别吗,如果有,50000 是什么意思?

此外,这似乎是一个很好的脚本:https : //raw.github.com/rackerhacker/MySQLTuner-perl/master/mysqltuner.pl 是否有任何类似的脚本列出重要的统计数据和显示建议

mysql performance database-tuning

3
推荐指数
1
解决办法
1036
查看次数

减少 tempdb 延迟的选项有哪些?

负责监视和调整 SQL Servers 2012 Enterprise Ed。Windows Server 2008 R2 Standard Ed 上的 SP1(64 位)。

所有这些都在虚拟机中运行。单个 RAID10 或 RAID5 上的每个区域办事处一个 SQL Server。换句话说,我无法使用不同的物理单元(硬盘驱动器)配置 SQL Server。

我观察到tempdb系统数据库上的读取和写入延迟升高。
在减少tempdb数据库延迟方面,我有哪些选择?

sql-server optimization database-tuning configuration tempdb

3
推荐指数
1
解决办法
1586
查看次数

MySQL 数据库使用过多 CPU

我有一个使用过多 CPU 的 MySQL 数据库。我实际上正在对查询数据库的 Web 服务器执行基准测试。现在数据库是瓶颈,它使用了太多的 CPU。VM 有 5 个 vCPU 和 4GB 内存。

我可以做任何更改以减少 CPU 使用量吗?并提高性能?

# * Fine Tuning
#
key_buffer              = 16M
max_allowed_packet      = 16M
thread_stack            = 192K
thread_cache_size       = 8
# This replaces the startup script and checks MyISAM tables if needed
# the first time they are touched
myisam-recover         = BACKUP
#max_connections        = 100
#table_cache            = 64
#thread_concurrency     = 10
#
# * Query Cache Configuration
#
query_cache_limit       = 1M
query_cache_size        = 16M
# …
Run Code Online (Sandbox Code Playgroud)

mysql performance database-tuning mysql-5.5

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

什么会导致 SQL Server 2008R2 上的读取速度变慢?

我们的主数据库大小为 15GB。服务器有 16GB RAM。我们使用简单的恢复模型。

最近,我们注意到我们的自定义应用程序查找(只是使用即席 SQL 语句进行基本读取)速度明显减慢。大多数情况下会多几秒钟。

我不是 SQL Server 管理员,并且不知道接下来该去哪里。

我们监控了CPU,它似乎从未达到峰值。与 RAM 相同。我们有大量的索引,但我认为这只是写入速度的问题......

对我下一步可以看什么有什么建议吗?

sql-server database-tuning sql-server-2008-r2

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

SQL Server:需要我的白皮书的主键建议

我已经厌倦了向我们研发团队中的每个初级开发人员解释为什么他应该使用主键以及如何使用。所以我决定写一个小白皮书,每个新开发人员都应该阅读。这是它的草稿。

免责声明:

  1. 我知道并理解聚集索引和主键之间的区别
  2. 在以下问题中,PRIMARY KEY 表示 PRIMARY KEY CLUSTERED,而 WITHOUT PRIMARY KEY 表示没有 PK 和 Clustered INDEX
  3. 请注意,这是面向初级而非 SQL 程序员的白皮书
  4. 他们所做的所有事情 - 在进入主要开发分支之前进行审查
  5. 我不会向他们解释——什么时候使用聚集索引和非聚集主键会有好处——否则我会陷入过早的优化地狱

问题是- 我还应该在文档中添加什么?可能是——我应该改些什么呢?更详细的解释是什么?

草稿来了:

  • 主键必须约束数据库中的任何表。
  • 如果没有 PK,一个表被认为是一个堆,而 SQL Server 对这种类型的数据的使用非常有限——我唯一应该说它是合适的——一个用于从 SQL Server 引擎外部快速批量加载数据的缓冲区。
  • 避免使用自然主键。主要是因为它们的自然(高斯)分布。例如,在具有基于 Family 和 Name 的主键的 PhoneBook 表中,Smiths 和 Wilsons 将很多,而 Zimmerbergs 少得多,这表明,包含 Smiths 和 Wilsons 的页面将比其他页面更频繁地拆分,并且也更频繁地查询 - 这成倍增加性能影响。这会导致性能下降,因为主键的页面很满,并且大多数搜索都会命中 PK 的稀疏页面。

此外,即使使用具有(我希望)扁平分布的 SSN 或 ID Number,因为 PK 也不能解决 PK 的页面拆分问题,因为这些数字没有任何组织顺序。

  • 次要 - 自然 PK 通常是复合的。这会创建复合外键和宽索引,从而损害性能。所以, ...
  • 避免使用复合 PK。使用简单代理 PK 和复合 UNIQUE 索引比使用多合一复合 PK …

database-design sql-server database-tuning database-theory

0
推荐指数
2
解决办法
1025
查看次数

自定义 SQL Server 计算机构建

我希望这是问这个问题的正确地方。我是 StackOverflow 的用户,当我仔细阅读 StackExchange 网站时,这是我能找到的最佳匹配。所以,如果我发错了地方,请告诉我,我会移动帖子。

我和一群人一起工作,我们正在创建一家初创投资公司。我是小组中的“技术人员”(我可以构建个人电脑和程序),所以我需要弄清楚我们的数据库服务器需要什么。

  1. 我们将使用 SQL Server,因为这是我所知道的(所以,请不要推荐 MySQL、Oracle 等......)。
  2. 我熟悉购买组件和组装 PC,尽管我以前从未专门为高性能数据库服务器做过这件事。
  3. 假设我们有几千美元的预算(我的共同投资者是医生)。
  4. 假设我们有一个恒定的股票市场数据馈送(一次大约 100 只股票),它需要在数据传入时将数据记录到数据库中,并使用当前数据来查询过去的类似数据并进行比较。

我主要感兴趣的是在哪里花更多的钱,而额外的力量在哪里用处不大。

例如,当谈到驱动器设置时,我想到了以下几点:

  1. 对于 OS 和 SQL Server 应用程序安装,RAID 1 阵列 2 60 GB SSD。
  2. 对于 SQL Server 数据量,RAID 5 阵列由 4 个中等大小的快速 HDD(我认为 300GB Velociraptor 驱动器;到目前为止,9 年的数据仅占用大约 100GB)。
  3. 对于 SQL Server 日志文件卷,RAID 1 阵列由 2 个中小型、足够的 HDD(此处为非迅猛龙)组成。
  4. 对于 SQL Server 临时数据库卷,使用 2 个 60 GB SSD 的 RAID 1 阵列。

OS/SQL Server 应用程序卷将是使用主板的软件 RAID;其余的 RAID 阵列将由专用 RAID 卡控制。

从我在网上阅读的内容来看,上述设置可能会给我带来出色的性能和稳定性。

现在,当涉及到其他组件时,什么是必要的?

  1. 最新的 i7 Quad …

sql-server database-tuning hardware

0
推荐指数
1
解决办法
650
查看次数