问题标签 [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.
sql - 填充 tempdb 的大型 SQL 查询需要优化
我有一个相当大的 SQL 查询,其中大部分来自 Business Objects SQL 导出,必须在 SQL Server 上复制以用于报告目的。
该视图现在已完成并正在运行,但是由于大量子句很快填满了 tempdb 并崩溃了。
据我所知,我需要 WHERE 子句中的所有内容,但是我觉得这可以优化为不填充 tempdb。
where子句如下:
Onece 运行这应该会带回大约 50,000 行数据,任何人都可以就如何停止对 tempdb 施加如此大的压力并运行此查询提出任何建议。
sql-server - SQL Server tempdb 永久表用例
tempdb数据库中的永久表是否有任何用例?永久我的意思是不使用# 或##,而是在tempdb 中创建一个真实的表。我知道重新启动 sql 服务会擦除 tempdb,但是这种做法会因为其他原因而不好吗?
我在问,因为我有一个用例,我需要一个临时表,但它将打开更多的 sql 连接跨度。
编辑:长期临时表中的实际数据是序列化文件,而不是基于排序规则或其他任何东西的数据
sql-server-2005 - SQL Server 2005 用户定义的数据类型、tempdb 和权限
我有一个在 SQL Server 2005 上运行的数据库,它具有用户定义的数据类型。用户定义的数据类型也在模型数据库中实现,所以当我创建一个临时表时,我可以使用相同的用户定义的数据类型。
例如,在 AppDB 中我定义了这个数据类型:
和模型中的完全相同:
我发现,如果我的数据库实例上的安全登录具有 sysadmin 服务器角色,那么用户调用使用 product_code 数据类型在 tempdb 中创建表的存储过程没有问题——但是如果我从应用程序安全登录中删除 sysadmin,那么存储过程调用失败。
如果我始终将用户定义的数据类型替换为 varchar 系统数据类型,则相同的存储过程调用会成功。
出于安全原因,我不想将 sysadmin 服务器角色添加到应用程序安全登录——如果我想继续使用用户定义的数据类型,我有哪些选择?这些选项会随着 SQL Server 2008 的变化而改变吗?
具体来说,除了授予公共角色的权限之外,还需要哪些权限?需要编辑所有存储过程的答案将被视为无响应。
sql-server - 在 T-SQL 存储过程中声明变量时,它是保存在内存中还是 tempdb 中?
我们正在尝试优化我们的一些 T-SQL 存储过程以减少 tempdb 争用,但我无法弄清楚 SQL 服务器如何存储非表变量:
- 像 INT 和 DATETIME 这样的简单数据类型呢?感觉他们会活在记忆中。
- 那么 VARCHARs/VARCHAR(MAX) 呢?常规 VARCHAR 可以存在于内存中,但 VARCHAR(MAX) 可能需要使用 tempdb 进行存储。
- 表变量存储在 tempdb 中。不过这些我都不是很感兴趣。
关于 tempdb的MSDN 文章没有解释常规变量。
database - 在 SQL Server 中查询只读数据库时,足够的可用 RAM 增加是否可以消除 tempdb 的使用?
tempdb
当我查看资源使用情况时,SQL Server 会针对一些大型查询进行大量写入。
我不使用临时表或表变量或任何写入,我只执行该服务器上只读数据库的选择语句。
所以我想知道如果我用大量 RAM 升级该服务器,SQL Server 是否能够使用额外的 RAM 并消除使用,tempdb
或者我仍然必须分配部分 RAM 并移动tempdb
到 RAM 磁盘?
问题SQL Server 2005 内存压力和 tempdb 写入问题与此有关,但没有解决这种情况。
sql - 对联合 SQL Server 运行查询时,数据会发生什么情况?
SQL Azure 为您提供了设置联合 SQL 服务器的选项 - 例如,本质上通过某个键将您的数据跨多个服务器分区。但是,当您运行时select * from order
,它会为您将所有数据重新组合在一起,并且整个过程对您的应用程序是透明的。
现在,假设我有一个可以自由使用临时表的存储过程。所以在这样的情况下:
在这种情况下,数据是否每次都从一台服务器流向主服务器?临时表实际存储在哪里?全部在主盒子上,还是在联邦盒子之间分开?
sql-server - 提高 sql 删除性能并减少日志文件和 tempDB 大小?
我有一个庞大的数据库,它每天处理电子邮件流量。在系统中,它需要每天删除一些旧邮件:
它可以工作,但问题是:完成需要很长时间,因此日志文件变得非常大。日志文件大小每天增加超过 100GB。
我想我们可以把它改成
但除此之外,我们还能做些什么来提高性能。最重要的是,减少日志文件的大小?
- EmailId 已编入索引。
sql - SQL Server Tempdb 超过 200GB
SQL语法如下
表 1 的信息:
- 行数:32,00,000
- NonClust_Index1_Col1
- NonClust_Index2_Col2
- NonClust_Index3_Col3
- NonClust_Index4_Col4
- NonClust_Index5_Col5
- 没有集群索引和主键
表 2 的信息:
行数:50,000
NonClust_Index1_Col1_Col2_Col3_Col4_Col5_Col6(六列的非集群复合索引)
Clust_Index2_Col1_Col2_Col3_Col4_Col5_Col6(六列上的集群复合索引)
请帮我确定这个简单的删除语法(删除语法在事务范围内)增加 TempDB 大小(>200GB)的原因是什么
sql-server - 为什么 tempdb 抛出错误但数据库仍然有大约 5gb 空间
当我们在处理应用程序时,突然出现上面屏幕截图中粘贴的错误,我们无法执行任何操作,但如果我查看数据库仍然有 5 GB 以上的可用空间,可能是什么原因?好心劝告
sql-server-2008 - Tempdb 已满
我目前正在处理的 BI 项目从基于 SP 的复杂流程接收数据,这些流程使用(太多)临时表。这是我们无法控制的(或者我会改变它)。
我们在这个项目中的部分主要是基于SSIS。
进程运行良好,但 tempdb 填满的速度相对较快,然后我们开始出现错误。
我正在寻找两件事:
- 如何防止 tempdb “溢出”(或至少减慢速度)?
- 溢出时如何清理tempdb?(最好使用 SSIS)