相关疑难解决方法(0)

我需要缩小我的数据库 - 我刚刚释放了很多空间

这个问题在这里以各种形式提出,但问题归结为:

我知道缩小数据库是有风险的。在这种情况下,我已经删除了这么多数据,我再也不会使用它了。

  • 如何缩小我的数据库?我缩小了哪些文件?
  • 这样做时我应该考虑什么?
  • 之后我应该做些什么吗?
  • 如果是大数据库呢?我可以以较小的增量缩小它吗?

sql-server shrink

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

如何将数据库从 SQL Server 2012 移动到 SQL Server 2005

如果我需要将数据库从 SQL Server 2012(32 位)移动到 SQL Server 2005(64 位),我有哪些选择?

我知道我不能:

  • 在 SQL Server 2005 上还原数据库的备份
  • 分离和附加

我知道我可以:

  • 使用导入数据向导,我在一个数据库上尝试过,但它只移动数据,即使那样也很麻烦,因为我需要做很多工作来创建临时表来维护标识列,重新创建所有 FK、索引等。

有没有更简单的选择?

sql-server migration downgrade

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

在 SQL Server 2008 的大表中将 VARCHAR 更改为 NVARCHAR 字段的有效方法?

我知道在向大表中添加新字段时,建议将它们添加到字段的末尾而不是中间的某个位置,并且想知道在更改字段类型时是否适用这样的事情?

我有一个包含大约一百万条记录的表,其中包含几个 VARCHAR 类型的字段。我想将这些更改为 NVARCHAR,但据我所知,这将需要一些时间和资源,因为字段位于表的中间,并且 SQL Server 必须进行大量复制/重新排序。

实现这一目标的有效方法是什么?

performance database-design varchar sql-server-2008-r2 type-conversion

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

数据库碎片整理和自动增长设置

我们确实为 SQL Server 2008 r2 express 制定了一些维护计划。如果任何表的页数超过 50 并且平均碎片超过 20,我们每个月都会对数据库进行碎片整理。

如果数据库日志大小>2MB,则恢复模式为简单,收缩,恢复模式重新设置为FULL。如果 Page_count>50 且 avg_fragmentation_in_percent > 30,则索引为 REBUILD。

如果 Page_count>50 且 avg_fragmentation_in_percent > 5 且 <30,则索引为 REORGANIZE。

这就是我们目前正在做的事情。但是我们发现自增长事件是资源密集型的,不应重复发生。现在,对于所有数据库,mdf 文件的自动增长设置为 MB,ldf 文件设置为 10%,这是创建新数据库时的默认值。我们计划根据每天变大的数据库数量来增加数据库的自动增长值。但是我想知道有多少自动增长事件对数据库来说是理想的。我应该设置自动增长以便它每天、每周或每月等只发生一次吗?所以请帮助我为我的数据库设置自动增长值。还有另一个问题,如果我每月对数据库进行碎片整理,那么它就会缩小。因此,在此之后,对于所有我确实收缩过的数据库,在写入新数据时都会发生一次自动增长。所以会有很多自动增长事件。那么会不会有问题呢?请告诉我一个解决方案。

sql-server maintenance shrink sql-server-2008-r2

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

SQL Server - 更改表与删除并创建

我们的数据库是 SQL Server 2008 R2。我们有一些表有一些 varchar(500) 列,我想切换到 datetime2 或 bigint。我可以保证要切换的列中的所有数据对于正确的类型都是有效的。列更改确实会影响索引,但不会影响键。

在与同事讨论时,我们得出了两种解决问题的方法。这两个都将通过 T-Sql 脚本完成。

  1. 通过 select into 创建临时表,删除旧表并使用正确的数据类型重新创建表。重新创建索引。
  2. 通过更改当前表/数据类型 ALTER TABLE x ALTER COLUMN Y datetime2,然后重建或重新创建索引。

因为我相信数据会干净利落地转换,所以我倾向于#2。我的同事和 DBA 朋友更喜欢 #1,但我的同事不记得他们为什么这样训练他。DBA 朋友正在休假,所以我没有问他为什么。

有人可以提供有关他们认为更好的选择以及为什么的见解吗?最终这是我的决定,我想知道为什么 #1 比 #2 更受欢迎?

sql-server t-sql sql-server-2008-r2 alter-table drop-table

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