问题标签 [tempdb]

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 投票
0 回答
656 浏览

sql-server - 创建索引时通常首选使用 SORT_IN_TEMPDB=Off 什么时候?

从开发人员的角度来看,我熟悉索引概念,但对创建和维护索引很陌生。我们的大多数索引都是使用SORT_IN_TEMPDB=On选项创建的,该选项告诉 SQL Servertempdb用于索引期间涉及的排序操作。

使用tempdbfor indexing 应该加快排序并通过使用 tempdb 资源来减少来自用户数据库的一些 IO 负载。

我最近遇到了一个索引定义SORT_IN_TEMPDB=Off,它告诉 SQL 服务器在用户数据库中进行排序。

问题:

  1. 不会SORT_IN_TEMPDB=off因为排序将使用用户数据库资源而减慢用户数据库的速度吗?
  2. 哪些因素通常会影响使用的决定SORT_IN_TEMPDB=off
0 投票
1 回答
101 浏览

sql-server - 天蓝色。使用 ARM 模板自动化 tempDB

我需要使用 Azure 上的 Windows Server 2016 在 SQL Server 2016 Web 版上自动设置 tempDB 文件。是否可以使用 ARM 模板?

0 投票
1 回答
257 浏览

sql-server - Sql Server 2016 临时数据库不释放空间

今天我在临时数据库上有非常特殊的情况。我的临时数据库有 10 个数据文件,所有数据文件都已满且数据库已锁定。我缩小了临时数据库、文件和日志文件,但它没有用。此外,我关闭了 Sql 服务器服务并再次打开,但临时数据库大小仍然已满。只有当我将每个数据文件的初始大小更改为如此小的值时,我才解决了问题。有人可以解释为什么重新启动后我的临时数据库没有释放空间,而且临时数据库从来没有这么大。一直都是60G左右。我如何追踪为什么我有这个问题?

0 投票
1 回答
81 浏览

sql-server - 使用大量数据的 tempDB 的最佳选择

为了使用 SQL Server 2014 从多个数据源和大量数据加载数据。

我的 ETL 脚本在 T-SQL 中,执行需要很长时间,因为我的 TempDB 已满。

在您看来,这是最好的方法:

  • 使用提交事务?
  • 清理 TempDB?
  • 等等
0 投票
1 回答
143 浏览

sql-server - 该查询将在 TempDB 中占用多少 - TSQL

当我创建一个 Insert Into 语句时,它是否存在任何方式来预测该语句将在 TempDB 中填充多少空间?

谢谢

0 投票
1 回答
1276 浏览

sql-server - 为什么 ALTER TABLE ... ALTER COLUMN ... 填充 TempDB 中的版本存储

我不得不将大表中的 BIGINT 列从可空更改为不可空。

在我们的 UAT 和 RC 环境中运行此程序大约需要 3 个小时,并发活动水平较低。UAT 和 RC 都反映了 PROD,因此都是很好的测试平台。考虑到桌子的大小和套件的性能,3 小时是合理的。

据我所知,相关配置是 snapshot_isolation_state = 0,is_read_committed_snapshot_on = 1。

在其他活动开始失败并出现“访问数据库'MyDatabase'中的表'myOther.Table'中的版本化行时事务中止时,ALTER TABLE在PROD中被杀死了几次(在运行了几个小时之后,然后进行了长时间的回滚) '。未找到请求的版本化行。您的 tempdb 可能空间不足。请参阅 BOL,了解如何配置 tempdb 进行版本化。错误。

第三次在 PROD 中运行此程序时,我安排关闭所有其他活动。大约 4 小时后,很明显有些东西不起作用。使用由于版本存储使用而对 tempdb 增长进行故障排除中的初始查询,我可以看到版本存储是 TempDB 的大部分,但 ALTER TABLE 连接没有被阻塞,CPU 和 IO 缓慢增加,所以我确信它还活着,唯一的等待我看到的是 SOS_SCHEDULER_YIELD。没有其他重要的联系。

又过了几个小时,我决定为 TempDB 添加一些空间。ALTER TABLE 很快就完成了。

有人可以解释为什么 ALTER TABLE 停滞不前吗?我可以理解是否有另一个连接引用 my.Table 中的旧(未更改)行,但绝对不是这种情况。

0 投票
0 回答
150 浏览

sql-server - 存储过程 MSenumgenerations90 正在减慢合并复制

我有一个运行良好的合并复制一年(系统已经活动了几年,但由于其他一些问题,我在一年前重新创建了复制)。

一切仍在工作,但是当有人(重新)初始化订阅(下载新的订阅数据库)时,需要更长的时间并且会出现一些锁。订阅者是带有 sql server compact 的 ca 300 windows ce 设备。

我可以看到,一个名为的存储过程MSenumgenerations90是罪魁祸首,它占用了大量的 IO 和 CPU。我在 CXPACKET 活动监视器中看到的最常见的等待,我知道这是并行性。我可以看到一些 pageiolatch,至少其中一些指向 tempdb。表 msMerge_GenHistory 包含多于 150 万条记录,我尝试向其添加索引以使存储过程中昂贵的操作运行得更快但没有成功。

我的保留期很长。它设置为 60 天,但我仍然可以看到,MSMerge_GenHistory当我一年前重新创建复制时,其中创建了几代(coldate)但是似乎有一些代被删除,因为最新一代的代号高于 2,2百万。元数据清理可能有问题还是这是正常行为?当 CXPACKET 等待显示时,我的缓冲区 I/O 等待时间为 2000 ms/s,并且还有很多 IO_COMPLETION 等待,当我在服务器上监视磁盘时,我可以看到 tempdb-file 的读取次数最多,并且写道。我读过的一件事是你可以为 tempdb 设置多个文件,它可以减轻 tempdb 的压力,这对我的情况有帮助吗?

运行合并复制时向 tempdb 添加更多文件是否安全?

更新。我运行了存储过程来获取实际的执行计划,并且有一个排序警告说排序溢出到 tempdb。我猜这就是我的问题的原因,sp 并行运行并且它溢出到 tempdb 并且 8 个连续线程正在访问 tempdb 以尝试对结果进行排序,这就是为什么 IO 中的等待很高以及为什么 CXPACKET 是显示!? 我有点担心我 怎样才能让它停止溢出到 tempdb?可以通过更好地索引来完成吗?我无法修改 sp,因为它是复制的一部分。欢迎任何帮助。

0 投票
1 回答
547 浏览

azure-sql-database - 天蓝色 SQL 数据库中的临时数据库是否可扩展

我正在尝试将一个非常大的表 (75G) 批量导入 azure SQL DB(定价层 P6 高级 1000 DTU),它失败并显示以下错误消息“Msg 40544, Level 17, State 2, Line 179 The database' tempdb' 已达到其大小配额。分区或删除数据、删除索引或查阅文档以获取可能的解决方案。”</p>

我查阅了一些博客,他们建议提高等级。我想知道我是否可以扩展 tempdb 而不必增加层本身。

现在我将文件分成更小的卷来加载它,但如果我必须在加载后在这个表上建立索引,我很确定它会再次失败并显示相同的错误消息。

有什么想法吗??

0 投票
1 回答
80 浏览

sql-server - SQL Query 从各种数据库中获取数据

我编写了以下查询以从不同的数据库中提取数据。我创建了两个临时表来从两个不同的数据库中提取数据,最后从原始数据库中创建一个 select 语句来连接所有表。我的查询正在执行,但没有得到任何数据。(报告为空白)。我尝试分别执行两个临时表。它给出了正确的数据。但是当我执行整个查询时,结果是空白的。下面是查询。请帮忙。

0 投票
1 回答
35 浏览

sql-server - 临时程序弄乱了排序规则

问题:我有一个由 .NET 应用程序创建的程序(简化):

问题是,数据库使用SQL_SLOVAK_CP1250_CI_AS排序规则。TempDB 使用默认的SQL_Latin1_General_CP1_CI_AS排序规则。

问题简化:

这导致RTC被保存,而不是测试字符串ŘŤČ 。当我从过程名称中删除 # 并且不将其创建为临时过程时,一切正常。

现在,一种可行的修复方法是将参数类型从 varchar 更改为 nvarchar。但这将是很多工作(许多不同的程序)。有没有可行的全球方法?

谢谢你,祝你有美好的一天