小编Als*_*sin的帖子

对分区表查询的错误估计

我想知道为什么 SQL Server 在如此简单的情况下会做出错误的估计。有一个场景。

CREATE PARTITION FUNCTION PF_Test (int) AS RANGE RIGHT 
FOR VALUES (20140801, 20140802, 20140803)

CREATE PARTITION SCHEME PS_Test AS PARTITION PF_Test ALL TO ([Primary])

CREATE TABLE A
(
  DateKey int not null,
  Type int not null,
  constraint PK_A primary key (DateKey, Type) on PS_Test(DateKey)
)

INSERT INTO A (DateKey, Type)
SELECT
  DateKey = N1.n  + 20140801,
  Type = N2.n + 1
FROM dbo.Numbers N1
  cross join dbo.Numbers N2
WHERE N1.n BETWEEN 0 AND 2
  and N2.n BETWEEN …
Run Code Online (Sandbox Code Playgroud)

sql-server partitioning cardinality-estimates

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

SQL Server,我无法修复的一致性错误

用户数据库上的 DBCC CHECKDB 返回此错误

Msg 8992, Level 16, State 1, Line 1
Check Catalog Msg 3851, State 1: An invalid row (class=128,depid=65536,depsubid=0) was found in the system table sys.syssingleobjrefs (class=128).
Run Code Online (Sandbox Code Playgroud)

此错误出现在用户数据库中,而不是出现在master! 当人们尝试检查在不同服务器上恢复的主数据库时,互联网上充满了专门讨论此错误的文章。事实并非如此。

我尝试了所有常用的魔法,但没有成功。

DBCC CHECKDB WITH ALL_ERRORMSGS, NO_INFOMSGS
--error

ALTER DATABASE DBCopy SET SINGLE_USER WITH ROLLBACK IMMEDIATE

DBCC CHECKDB (DBCopy, REPAIR_ALLOW_DATA_LOSS) 
--output reports the same error

DBCC CHECKDB WITH ALL_ERRORMSGS, NO_INFOMSGS
--error

--no hope but just in case
ALTER DATABASE DBCopy SET EMERGENCY

DBCC CHECKDB (DBCopy, REPAIR_ALLOW_DATA_LOSS) 
--the …
Run Code Online (Sandbox Code Playgroud)

sql-server dbcc

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

log_reuse_wait_desc = AVAILABILITY_REPLICA,日志已 100% 满,但 AG 一切正常

这是一个奇怪的场景。事务日志已满。它等待AG。AG一切都好。无延迟,最后提交/硬化时间在所有节点上几乎都是实时的。预计恢复时间为零。我也从主节点和辅助节点检查了这一点(以防仪表板未更新)。此页面仅列出了此错误的两个原因:传递延迟和重做延迟。没有任何内容适用于我的系统。如何进一步解决这个问题?

编辑 1。我们对环境所做的唯一更改是添加了两个 SQL Server 2019 节点以准备迁移。但它不应该出现这样的问题。

编辑2。我发现的唯一解决方法是将数据库重新添加到AG。

sql-server availability-groups sql-server-2016

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