小编hma*_*ett的帖子

将主键约束从一个索引移动到另一个索引

我有一个 SQL Server 数据库,并且已经运行过sp_blitz它。这表明在中等大小的表上有几个堆(在一个案例中为几十万行)。

大多数这些表都有一个主键(一个没有,但我稍后会处理)。主键本身有一个不寻常的名称 - 即不是默认名称,因为大多数表都有一个默认的主键名称 ( PK_tablename)。

有一个名称与主键匹配的索引,该索引是唯一且非聚集的。

我可以重命名主键,但我认为我应该创建一个聚集索引。如果我这样做,那么我将有重复的索引,因此删除非聚集索引是有意义的。但是,它用于主键。

如果我将主键约束从旧的非聚集索引移动到新的聚集索引:

  1. 这有意义吗?
  2. 有什么我应该注意的事情吗?
  3. 执行此操作的最佳方法是什么?

sql-server

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

将 PostgreSQL WAL 的使用分配给数据库/表/查询

我有一个 PostgreSQL 11 数据库,其中包含多个数据库,其中一些包含经常插入和更新的表。最近写入 WAL 文件的数据量大幅增加(约 400%),尽管我相信插入数据库的数量仅增加了约 20%。

因此,我们不仅使用了更多的磁盘,而且我们的数据库性能现在似乎受到 WAL 所在磁盘的写入器性能的限制。

应用程序更新非常频繁,可能是应用程序中的某些内容(我们控制并能够更改)发生了变化,这导致插入/更新的效率降低,但我不知道我们如何会识别。自从这种行为改变开始以来,可能已经发生了很多变化,自从它第一次被注意到以来,可能已经发生了很多变化。

有没有办法确定哪些数据库/表/查询正在写入 WAL,以及(大约)数量?

postgresql postgresql-performance

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