今天在code review中看到如下语句:
ALTER TABLE dbo.MyTable ADD CreateDate DATETIME2(0) NOT NULL DEFAULT GETUTCDATE()
GETUTCDATE() 函数返回一个datetime
,然后将其填充到一个datetime2
列中。
这两种类型不同有什么意义吗?使用 SYSUTCDATETIME() 来创建一个datetime2
值会更好吗?
今天在code review中看到如下语句:
ALTER TABLE dbo.MyTable ADD CreateDate DATETIME2(0) NOT NULL DEFAULT GETUTCDATE()
GETUTCDATE() 函数返回一个datetime
,然后将其填充到一个datetime2
列中。
这两种类型不同有什么意义吗?使用 SYSUTCDATETIME() 来创建一个datetime2
值会更好吗?
我最近在一个需要清理的大型 Oracle 数据库中工作。作为清理工作的一部分,我们将寻找未使用的 PL/SQL。
Oracle 是否会随着时间的推移在内部跟踪实体的使用情况?如果是这样,如何访问这些信息?
(从 StackOverflow 手动移动它,因为它确实属于这里。)
我们有一个生产 SQL Server Enterprise 数据库,其中包含几 TB 的数据。我们需要将数据拆分为多个文件。预生产环境中的测试进展顺利,但在收缩期间数据库的性能会下降。我们希望提前解决生产系统中文件收缩/拆分的潜在问题,因为我们有大客户使用 SLA,这限制了我们进行显着影响性能的更改的能力。
SQL Server 收缩/拆分功能是否能够限制在转换到多个文件期间收缩/拆分产生的开销?或者,我们是否有能够实现相同限制能力的路径。或者,是否可以采取一种在给定维护窗口期间逐渐拆分/缩小文件的方法?
我想优化一个表在 SQL Server 中的查询,以了解它是否有少于一定数量的记录数。我不需要知道完整的计数,只需要知道它是否小于,比如说,2。
这样做会有效率吗?...
if (
select count(*)
from (select top (2) *
from sys.databases) t
) > 1
begin
select 1
end
else
begin
select 0
end
我想ALLOW_SNAPSHOT_ISOLATION
在拥有约 4 亿条总记录的生产数据库上启用。我知道每条记录需要添加 14 个字节。
如果我设置ALLOW_SNAPSHOT_ISOLATION
它会阻塞一段时间与记录数成比例,还是会异步更新数据?
首先,我想确保启用此设置后我的数据库不会在数小时内停止服务。
我正在通过 sp_executesql 分析在我们系统内运行的查询。我能够在生产数据库上执行查询并包括实际执行计划。在执行计划结果窗口中,建议使用简单的非聚集索引。
根据建议,我添加了索引。但是,当我重新运行相同的查询时,它会继续建议相同的索引。为什么会认为索引不存在呢?
在过去,我见过使用诸如
SELECT ISNULL(NULLIF(Field1, ''), 'NewValue')
简洁地获得一个后备值。
然而,自从 CASE 在 TSQL 中出现以来,我们更喜欢类似的东西
SELECT CASE Field1 WHEN '' THEN 'NewValue' ELSE Field1 END
一个会比另一个表现更好吗?还有什么其他原因会选择其中一个?
如果我需要恢复复制中涉及的数据库,我需要牢记哪些注意事项?
在 SQL Server 2008 R2 中,我如何确定记录当前所在的分区?
我们有一个聚集在 identity/datetime2 上的表。它在相同的 datetime2 上进行分区。是否有任何理由聚集在 datetime2/identity 上?我一般理解集群背后的原因,但是包括分区,事情会改变吗?
在了解 SQL Server 中的复制并在创建订阅时遇到问题时,我查看了 sp_addsubscription 的定义。它调用 sys.sp_MSrepl_getpublisherinfo,我在服务器上找不到。这个存储过程显然存在,因为它不存在不会发生错误。它住在哪里,可以查看它的代码吗?
在调整 SQL Server 时,在尝试决定首先调整什么时通常使用什么啄食顺序?我问的是现有的数据库,我几乎没有能力重新设计。
例如,我的第一个想法是先调整聚簇索引,然后是非聚簇索引,也许还要检查约束。表和索引的分区将在某处进行。我希望我遗漏了很多可以列在这份清单上的项目。