当插入/更新一定数量的行时,SQL Server 会自动处理索引碎片问题。
那么为什么会有重建/重组索引的选项呢?
UPDATE MARK M SET ARCHIVE_FLAG = 'N' WHERE EXISTS
(SELECT /*+ cardinality(S1, 10) parallel(S1,8)*/ 1 FROM SHFASG S, SHIFT S1
WHERE S.ID = S1.ID AND M.ID = S.MARKID AND ARCHIVE_FLAG <> 'Y');
Run Code Online (Sandbox Code Playgroud)
这是我拥有的 oracle 查询,我想为我的 MS SQL DB 创建类似的查询,请提供任何帮助
sql-server optimization parallelism cardinality-estimates query-performance
在 SQL 2019 上,我尝试将兼容性级别更改为 2008(以确保我能够附加到旧版本,至少我希望这是可能的)。
我分离了这个数据库。
到目前为止,我发现了一些相关主题如下: 将数据库还原到旧版本
但是有关于恢复备份的讨论,但我问的是分离/附加和兼容性级别。
所以这是我的问题:
问题 1:有没有办法在旧的 SQL 服务器上附加最新的 mdb 文件?
如果不
问题 2:什么是功能“兼容级别”?
阅读以下两个ansers后,我有:
问题 3:您认为使用dbeaver或devart等工具可以在 NEW<>OLD SQL 版本之间导出/导入数据,或者您是否会建议其他工具来完成此类工作?
我有一个用于许多报告查询的表。我想知道以“有序”方式读取表格的次数。在聚集索引扫描的执行计划中,可以看到读取是否“有序”。此信息是否在其他地方可用,或者是搜索计划缓存的唯一解决方案?
我有一个 3 节点 Always On AG,它托管一个 5TB 数据库。由于业务需求,在每个月第一天的凌晨 12:01,我需要在附加上个月名称的第 3 个节点(副本)上创建该数据库的副本。例如,在 4 月 1 日,我创建了一个名为“mydatabase_march2021”的数据库,它是截至 4 月 1 日凌晨 12:01 的“mydatabase”的副本。
我当前的流程是在凌晨 12:01 从第 3 个节点上的 AG 中立即删除 DB,重命名它,然后开始将 5TB 的 DB 备份和恢复到第 3 个节点并将其添加到 AG 的缓慢过程。有没有其他方法可以做到这一点而不必完全重新初始化第三个节点上的数据库?我需要在凌晨 5 点之前将这个副本提供给商业用户。
我曾尝试从 AG 中删除 DB,使 SQL 脱机,制作 DB 文件的副本,但无法附加这些文件并使 DB 保持恢复状态(这是重新初始化所必需的)。
附加信息:
Windows Server 2016 Standard
SQL Server 2012 SP4 Enterprise(将在明年的某个时间升级到 SQL 2016 或 2019)
节点 1 位于数据中心 A
节点 2 和节点 3 位于数据中心 B
我希望这个问题不会太主观以至于它已经结束,因为我认为它可以帮助新的 DBA,他们希望更好地全面了解如何成为一名有能力、知识渊博的 DBA,并且精通他们的行业。
谢谢你。
在sql server中,当我们扩展安全性,扩展登录名时,有登录名列表。
所有这些都存储在主数据库中吗?
如果是这样,那么在迁移到另一台服务器时,如果我们备份这个主数据库并恢复到新服务器,那么登录名是否会迁移到新服务器?
同样,SQL 服务器作业、计划等存储在 msdb 中?这可以备份/恢复以将作业迁移到新服务器吗?
如果没有,那么备份这些系统数据库的目的是什么?
我不小心更改了 Microsoft 2016 SQL 数据库上的存储过程。然后我注意到报告方投诉后的变化。做了一些更改并运行但没有工作。不是我需要恢复两周前存储的过程。谁能解释一下这个过程。
将带有前导零的数字保存到字符串变量或列中时,前导零将被截断。
当我运行此查询时:
declare @varchar as nvarchar(50)
set @varchar = 011
print @varchar
Run Code Online (Sandbox Code Playgroud)
我得到的结果是 11。
有没有办法得到011?
是否有 DMV 或其他机制可以返回执行 session_id 的命令超时?
sql-server ×10
dmv ×1
optimization ×1
parallelism ×1
plan-cache ×1
restore ×1
ssms ×1
t-sql ×1