小编Lop*_*ded的帖子

如果一个数据库只有一个插入,那么索引每一个可能的列组合是不是很糟糕?

我正在开发一个需要大量选择查询的报告系统,但它基于只填充一次的数据库。数据库管理系统是 Microsoft SQL Server 2017。可能有更好的方法来设计这样的系统,但让我们从理论上来解决这个问题。

理论上来说:

  1. 如果我们有一个非常大的数据库(多个表上的 150M+ 行)
  2. 我们可以假设数据库只会填充一次。

索引每个可能的列组合是否会对选择查询产生负面性能影响?

sql-server t-sql index-tuning sql-server-2017

24
推荐指数
3
解决办法
5063
查看次数

我刚刚从表格列中删除了 19k 高分辨率图像,并且有一些关于缩小的问题

我们刚刚为我们的应用程序转移到一个新的图像存储方法,这意味着我们不再需要在数据库中存储图像字节数组。

为此,我UPDATE从单个表的列中删除了(通过声明)大约 19k 字节的包含高分辨率图像(大约 8 GB)的数组。如果没有图像,我不希望数据库会增长到现在的大小。再次请注意,我在这里没有删除行,只是将字段值设置为 NULL。

其他信息:

  • 列类型为 VARBINARY
  • 列上没有索引。

问题

  1. 我应该继续缩小数据库,然后为该表重建索引吗?
  2. 我读到的大多数场景都涉及在DELETE声明后缩小。我没有删除任何行,我只将所有行的字段值设置为 null。这有什么改变吗?
  3. 该列现已弃用,我们可能只想将其从表中删除;我相信这将需要重新创建表。我应该在删除列之前还是之后缩小数据库?

编辑: 我刚刚想到了另一种可能性。随着图像数据消失,最好只编写一个脚本来完全重建整个数据库,而没有列图像列。想法?

shrink sql-server-2016

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