相关疑难解决方法(0)

什么时候可以收缩数据库?

我知道收缩是魔鬼:它会颠倒页面顺序并导致皮肤癌、数据碎片化和全球变暖。名单还在继续……话虽如此,假设我有一个 100 GB 的数据库,我删除了 50 GB 的数据——不是在一个表上,而是在数据库范围内对旧数据进行一般修剪,覆盖 90% 的数据表——这是否构成缩小数据库的适当用例?

如果没有,从数据库中删除如此高比例的数据后,应采取哪些适当的步骤来清理房屋?我可以想到两个:重建索引和更新统计。还有什么?

sql-server maintenance shrink disk-space

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

截断了 200GB 的表,但未释放磁盘空间

我只剩下 2GB 了,所以我需要删除这个历史表。该表现在为空,但数据库磁盘空间未释放。并且数据库文件是320GB。

sql-server truncate sql-server-2012

25
推荐指数
3
解决办法
7万
查看次数

查找特定行的磁盘大小

我试图找出各种表中的许多行占用的磁盘大小。

我可以通过查询定义这些行。如何找出与 SQL Server 中的结果集对应的实际磁盘大小?

我之所以想知道这一点,是因为我正在尝试分析一个多租户系统。我试图获得每个租户在系统上占用的总大小。所以我需要与每个租户有关的所有行的大小以及每个租户在索引表中使用的大小等。

租户都共享相同的架构,因此不容易做到。

sql-server sql-server-2008-r2

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

从表中删除条目不会减少我的数据库文件

我使用了INNODB引擎innodb_table_per_file,所以每个表都有它自己的.ibd文件而不是 ibdata1 文件。

当我在我的用户表中输入 512 条记录时,它的大小从 96 kb 增加到 200 kb 但是当我使用命令删除所有行时

DELETE FROM USERS;
Run Code Online (Sandbox Code Playgroud)

那么我的.ibd文件甚至没有减少一个字节。

但是当我使用命令删除行时

TRUNCATE TABLE USERS
Run Code Online (Sandbox Code Playgroud)

然后我的.ibd文件减少到它的初始大小,即创建时为 96 kb。

现在我想知道.ibd当我使用DELETE FROM USERS WHERE ... 命令时有什么方法可以减少文件

mysql innodb

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