使用Sybase数据库是出现的问题,急等解决,Sybase那边没人回答,这边人气旺,来问问。
在进行左连接查询或者排序时出现如下提示,如何解决?
The transaction log in database tempdb is almost full. Your transaction is being suspended until space is made available in the log.
在进行左连接查询或者排序时出现如下提示,如何解决?
The transaction log in database tempdb is almost full. Your transaction is being suspended until space is made available in the log.
解决方案 »
- 问个SQL写法方面问题
- 简单抢分题,(这条题目太短了)????
- 求:可以跳过用select查询时候的sql的报错,把表里面的内容都查询或导出来的工具??
- 请问:为什么在企业管理器里面修改行数据时提示流水模式下,事务无法执行?
- 请问SQL Server客户端设置的网络库,默认库在注册什么位置?
- 各位大虾:服务器 'BILLGATES' 上的 MSDTC 不可用。是什么意思啊?怎么解决?
- 查找重复数据
- 这个锁很奇怪
- 一道数据库实际应用的考题
- 求一设计思想或者数据结构!(做过计数器的朋友应该能搞定!) 分数在另外贴里!
- 请问存取过程调用另一个存取过程(带参数的)怎么作?
- 存储过程问题,老大们救命啊~~~
1、有巨大的事务
2、tempdb没有被设置成checkpoint时截断日志
tempdb 数据库保存所有的临时表和临时存储过程。它还满足任何其它的临时存储要求,例如存储 SQL Server 生成的工作表。tempdb 数据库是全局资源,所有连接到系统的用户的临时表和存储过程都存储在该数据库中。tempdb 数据库在 SQL Server 每次启动时都重新创建,因此该数据库在系统启动时总是干净的。临时表和存储过程在连接断开时自动除去,而且当系统关闭后将没有任何连接处于活动状态,因此 tempdb 数据库中没有任何内容会从 SQL Server 的一个会话保存到另一个会话。默认情况下,在 SQL Server 在运行时 tempdb 数据库会根据需要自动增长。不过,与其它数据库不同,每次启动数据库引擎时,它会重置为其初始大小。如果为 tempdb 数据库定义的大小较小,则每次重新启动 SQL Server时,将tempdb 数据库的大小自动增加到支持工作负荷所需的大小这一工作可能会成为系统处理负荷的一部分。为避免这种开销,可以使用 ALTER DATABASE 增加 tempdb 数据库的大小。
对 tempdb 数据库的物理位置和数据库选项设置的一般建议包括: 使 tempdb 数据库得以按需自动扩展。这确保在执行完成前不终止查询,该查询所生成的存储在 tempdb 数据库内的中间结果集比预期大得多。
将 tempdb 数据库文件的初始大小设置为合理的大小,以避免当需要更多空间时文件自动扩展。如果 tempdb 数据库扩展得过于频繁,性能会受不良影响。
将文件增长增量百分比设置为合理的大小,以避免 tempdb 数据库文件按太小的值增长。如果文件增长幅度与写入 tempdb 数据库的数据量相比太小,则 tempdb 数据库可能需要始终扩展,因而将妨害性能。
将 tempdb 数据库放在快速 I/O 子系统上以确保好的性能。在多个磁盘上条带化 tempdb 数据库以获得更好的性能。使用文件组将 tempdb 数据库放在除用户数据库所使用的磁盘之外的磁盘上。
用sp_helpdb tempdb看了一下,原来的安装人员安装时master只有3M,tempdb在master设备上,只有1M多点,怪不得一个order就出问题。
解决的方法:
首先获取vdevno
use master
go
select max(convert(tinyint,substring(convert(binary(4),d.low),v.low,1)))+1
from master.dbo.sysdevices d,master.dbo.spt_values v
where v.type='E'and v.number=3
go
这里得到6
然后创建一个tempdb_dev设备:
disk init name="tempdb_dev", physname="d:\sybase\data\tempdb.dat", vdevno=6, size=262144
这里size是设备尺寸,单位是2K,一个页面2K,共创建500M的设备
接着扩展tempdb:
alter database tempdb on tempdb_dev=500
这里的500,单位是M