问题标签 [dbcc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3369 浏览

sql - SQL Server 数据库不会缩小

我有一个 31 GB 的数据库,我从一个客户那里得到一个项目。我正在编码并将数据库保存在 80GB Win7 VM 中。我得到了 db 文件并从中导入了数据库,发现空间大部分被一张表占用了,有 240,000 张图像。我删除了大部分行,现在有 29,000MB 可用。我无法执行很多功能,因为驱动器已降至最后几 GB,并且仍有很多记录需要修改(我正在更改多个表中的数据类型,但不断收到 active_transaction 错误)。DBCC_SHRINKDATABASE(0)它不会通过或Tasks > Shrink > Database或文件缩小。当我第一次得到它时,它似乎只缩小到数据库的大小。我如何让它释放那个空间?如果可以的话,我可以将仍然存在的数据导出到较小的数据库中,然后从中恢复吗?

运行 SQL Server 2012 和 Management Studio。

谢谢,

托尼

0 投票
1 回答
2563 浏览

sql - SQL 2008 备份失败

我有一个最终用户遇到了这个错误并正在寻求帮助。无法进行完整备份,以下是我们遇到的错误。我尝试运行完整备份以在出现错误后继续,但它仍然失败。是的 sql services 可以完全访问磁盘。我能够对同一台服务器上的其他数据库进行完整备份。

消息 3203,级别 16,状态 1,行 1 读取“R:\MSSQL10\Database.mdf”失败:23(数据错误(循环冗余检查)。)消息 3013,级别 16,状态 1,行 1 备份数据库是异常终止。

我跑了 checkdb,它回来说要运行 repair_allow_data_loss。有没有办法在不运行允许数据丢失的情况下修复这个错误?

0 投票
1 回答
438 浏览

php - PHP 查询中的 DBCC CHECKIDENT 错误

这是我第一次在这里提出问题,但过去我曾多次使用 stackoverflow 来解决我在代码中遇到的问题。

我正在上传 csv 文件并更新数据库的 php 站点上的数据库传输页面上工作,并且根据用户选择的更新类型,可以通过密钥更新/插入此数据。因此,我想在更新完成后运行 DBCC CHECKIDENT,以确保新条目在表中最大键之后正确递增。

这是我正在运行的 php 代码:

$t 是存储在表名数组中的表名。

我从这段代码中得到以下错误:

令我困惑的是,当我将粘贴 DBCC CHECKIDENT ('table', RESEED, 16) 剪切到服务器管理工​​作室时,它可以工作,我得到:

如果有人有任何想法是什么原因造成的,或者如果我错过了解决此问题的帖子,任何帮助将不胜感激。

下面是查询类。我没有成功:

0 投票
0 回答
1697 浏览

sql-server-2008-r2 - SQL Server 2008 r2 TempDB 数据文件未将空间释放回操作系统

DBCC CheckDB "myDB" 进程成功完成后,临时 db 数据文件未向操作系统清除或释放空间。我使用 SP_WhoIsActive 脚本诊断并发现 DBCC CheckDB 进程导致临时数据库增长,但它只发生在一个大约 16 GB 的数据库上,DBCC CheckDB 正在使用临时数据库,正如我在使用 SP_WhoIsActive 时看到的那样。

注意:当我重新启动 SQL Server 时,tempdb 将向操作系统释放分配的空间,但在 DBCC Check DB 作业运行后会增长到 45 GB,并且不会释放已用空间。

0 投票
1 回答
456 浏览

sql-server - “DBCC CHECKDB (databasename, repair)”属于哪一种修复级别?

MSDN 关于命令“DBCC CHECKDB”的文章在语法部分解释了执行数据库修复的三种方法:

但是我在寻找如何修复可疑数据库时发现了以下语句,我无法理解它是三种模式中的哪一种:

DBCC CHECKDB(数据库名称,修复

我执行了该语句,它工作正常。我很困惑,因为没有用“_allow_data_loss”、“_fast”或“_rebuild”完成单词,就没有单独引用“repair”参数。

提前致谢,

0 投票
2 回答
1850 浏览

sql-server - 如何修复sql server中的碎片索引?

我想对 sql server 中的表进行碎片整理,我使用这段代码来了解碎片索引:

在我得到我使用的结果之后

对索引进行碎片整理,然后重用第一个代码来显示结果,它在碎片整理之前显示相同并且没有删除任何页面?那有什么问题,我该如何修复索引?

0 投票
1 回答
43 浏览

sql-server - 解密 SQL Server 页面存储

输出

这里的d8是什么?

0 投票
2 回答
4200 浏览

sql - DBCC CLEANTABLE 未释放已用空间

我有大约 300 张桌子,每张桌子有 5.5kk 行。其中一行使用 nvarchar(128) 作为数据类型 (SQL Server 2012)。
我们决定将其更改为 int 并将 FK 添加到包含所有 nvarchars 的字典表中。

完成所有操作后,我删除了 nvarchar 列,但表的大小保持不变。我使用 DBCC CLEANTABLE 并重建索引以回收可用空间,但表的大小仍然没有改变。

到目前为止,我发现的唯一方法是将所有数据复制到新表中。

问题:我在这里缺少什么?为什么空间仍被标记为已使用并且我无法通过收缩或 CREANTABLE 命令释放?

谢谢!

Answ:看起来答案很简单,由于我缺乏知识,我无法找到它。这里的主要问题是堆碎片。这个查询对我有用:

我不确定这是不是最好的方法,但至少它是一种有效的方法。

Edited1:对不起,我想我忘了提 - 我在 Text 字段上有聚集索引,所以我必须删除索引才能真正删除该字段。现在我没有索引。

编辑2

旧表:

新表:

复制脚本:

0 投票
1 回答
7908 浏览

sql - 运行 DBCC CHECKDB 时出现错误 8921

DBCC CHECKDB 在我的 sql server 2008 R2 数据库中显示以下错误消息

消息 8921,级别 16,状态 1,第 2 行检查已终止。收集事实时检测到故障。可能是 tempdb 空间不足或系统表不一致。检查以前的错误。

解决办法是什么?

0 投票
1 回答
1003 浏览

sql-server - 我们什么时候为 DBCC DBREINDEX 指定填充因子?

我检查了谷歌,发现如果填充因子为 0,那么它使用索引页面上的 100% 空间。否则我们需要指定填充因子。

我对专家的问题是:

  1. 我们是否应该将其留空以获得最大的索引效率?
  2. 我在我们的一些数据库中发现,对于某些索引,填充因子是 80、85、90、100。那么,我们什么时候应该将填充因子指定为 80 或 90?

    从 sys.indexes 中选择 fill_factor,* 其中 fill_factor <> 0