我们有一个在身份/日期时间 2 上聚集的表。它在相同的 datetime2 上分区。是否有任何理由改为在 datetime2/identity 上进行集群?我通常理解聚类背后的原因,但是包含分区后,情况会发生变化吗?
在 SQL Server 2008 R2 中,如何确定记录当前位于哪个分区?
如果我需要还原涉及复制的数据库,我需要牢记哪些注意事项?
今天在代码审查中看到这样的说法:
ALTER TABLE dbo.MyTable ADD CreateDate DATETIME2(0) NOT NULL DEFAULT GETUTCDATE()
Run Code Online (Sandbox Code Playgroud)
GETUTCDATE() 函数返回 a datetime
,然后将其填充到datetime2
列中。
这两种类型的不同有什么意义吗?使用 SYSUTCDATETIME() 创建datetime2
值会更好吗?
在过去,我见过使用诸如
SELECT ISNULL(NULLIF(Field1, ''), 'NewValue')
简洁地获得回退值。
然而,自从 TSQL 中出现 CASE 以来,我们更喜欢一些类似的东西
SELECT CASE Field1 WHEN '' THEN 'NewValue' ELSE Field1 END
一个会比另一个表现更好吗?选择一个而不是另一个的其他原因是什么?
我想ALLOW_SNAPSHOT_ISOLATION
在拥有约 4 亿条记录的生产数据库上启用。我知道每个记录需要添加 14 个字节。
如果我设置ALLOW_SNAPSHOT_ISOLATION
它会阻塞一段时间与记录计数成正比,还是会异步更新数据?
首先,我想确保在启用此设置后,我的数据库不会在数小时内停止服务。
sql-server ×6
partitioning ×2
backup ×1
datetime ×1
index ×1
replication ×1
restore ×1
t-sql ×1