小编SDR*_*yes的帖子

是“DBCC SHRINKDATABASE”还是“DBCC SHRINKDATABASE”:这是个问题

我们正在释放 SQL Server 2008 R2 数据库中的大量空间 - 太棒了!足以关心-(我们丢弃了大量不必要的数据)。但数据库文件会保留其文件大小。我们想重新获得它。

我多次听说使用DBCC SHRINKDATABASE会降低数据库的性能 - 据我所知,因为“...收缩操作不会保留数据库中索引的碎片状态,并且通常会将碎片增加到学位” [MSDN]

所以我打算使用DBCC SHRINKDATABASE然后重建我们的索引。

不使用DBCC SHRINKDATABASE来重新获得磁盘空间还有另一个性能原因吗?

performance sql-server-2008 dbcc

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

为什么 MySQL 可以同时处理多个更新而 PostgreSQL 不能?

假设您有一个具有以下定义的表:

CREATE TABLE public.positions
(
   id serial,
   latitude numeric(18,12),
   longitude numeric(18,12),
   updated_at timestamp without time zone
)
Run Code Online (Sandbox Code Playgroud)

您在此表中有 50,000 行。现在出于测试目的,您将运行如下更新:

update positions
set  updated_at = now()
where latitude between 234.12 and 235.00;
Run Code Online (Sandbox Code Playgroud)

该语句将从 50,000 行(在此特定数据集中)更新 1,000 行。

如果您在 30 个不同的线程中运行这样的查询*,MySQL innodb 将成功,而 PostgreSQL 将因大量死锁而失败。

为什么?


* 我正在比较最新版本的 MySQL innodb 与 Postgres,这是一个并发更新案例。生产案例:想象有 5000 只库存不断更新,最新价格不断可用。

mysql innodb postgresql deadlock isolation-level

4
推荐指数
3
解决办法
6475
查看次数