他们告诉我只要重启服务就行,我按着他们的做确实可以 , why? 不应该啊 !
我用 select * from sys.database_files 查询出来 maxsize为256G 实际size为500M 磁盘容量不到256G 但是提示出满的时候磁盘并没有被占满 我观察了一段时间发现tempdb的日志的大小一直固定为3.9G 从来没有动过 数据库中查询出来还是500M 按道理来说是不会出现这种情况的,而且 就算出现这种情况 跟我重启服务应该是没有任何关系的 ,可是重启了之后 就是没报错了,
另:最大服务器内存改小是否会对查询速度有影响
22 个解决方案
#1
-- 看看什么情况
sp_helpdb tempdb
#2
用这个查出来 结果为25311.69MB 算24.7G 其他的好像没什么特别的
然后下面有 8行 1 2行没有动过 一直都是3.9 下面的 总size加起来就等于上面的 24.7G 除了第二个日志有限上限为256G 其他均无限制增长上限 不知道下面那6行是干啥的,正常情况不是只有2行吗
#3
讲道理,这个跟磁盘空间应该是没有关系的,磁盘空间充足不存在爆满现象,而增长上限均未限制
重启服务器最大的变化就是内存清掉了一些,会不会跟内存有关 64G的内存 按道理来 平常使用量基本稳定在54G左右 大部分为SQL Server所占 网上查了一下正常64G 实际可使用量不超过59G 所以猜想是不是跟内存有关 不过好像日志满了跟内存应该没有半毛钱关系啊
重启服务器最大的变化就是内存清掉了一些,会不会跟内存有关 64G的内存 按道理来 平常使用量基本稳定在54G左右 大部分为SQL Server所占 网上查了一下正常64G 实际可使用量不超过59G 所以猜想是不是跟内存有关 不过好像日志满了跟内存应该没有半毛钱关系啊
#4
既然自己分析不出来,就把运行结果帖出来,别在那里自说自话。
现在只能靠猜:是不是文件是按固定大小增长的,而增长后的大小会超过硬盘容量?
现在只能靠猜:是不是文件是按固定大小增长的,而增长后的大小会超过硬盘容量?
#5
公司电脑不能连外网 插USB 截图 ,弄了半天才弄出来
#6
tempdb 25311.69 MB sa 2 12 12 2016 Status=ONLINE, Updateability=READ_WRITE, UserAccess=MULTI_USER, Recovery=SIMPLE, Version=655, Collation=Chinese_PRC_CI_AS, SQLSortOrder=0, IsAutoCreateStatistics, IsAutoUpdateStatistics 100
tempdev 1 C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\tempdb.mdf PRIMARY 4096000 KB Unlimited 102400 KB data only
templog 2 C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\templog.ldf NULL 4096000 KB 2147483648 KB 102400 KB log only
tempdev1 3 E:\TempDB\tempdev1.ndf PRIMARY 940032 KB Unlimited 0 KB data only
tempdev2 4 E:\TempDB\tempdev2.ndf PRIMARY 1595648 KB Unlimited 0 KB data only
tempdev3 5 E:\TempDB\tempdev3.ndf PRIMARY 3793024 KB Unlimited 0 KB data only
tempdev4 6 E:\TempDB\tempdev4.ndf PRIMARY 3928768 KB Unlimited 0 KB data only
tempdev5 7 E:\TempDB\tempdev5.ndf PRIMARY 3764672 KB Unlimited 10240 KB data only
tempdev6 8 E:\TempDB\tempdev6.ndf PRIMARY 3705024 KB Unlimited 102400 KB data only
#7
按道理来说是不会这样的,因为硬盘容量可以说十分充裕 增长量最大也不过500M
#8
你是FAT32的文件系统吧。
没有一个文件是超4G的。
而 templog.ldf 当前是 3.9G,再增 100M 就超4G了。
换用 NTFS 文件系统。
否则文件自动增长没意义,对现场数据库来说,4G文件太小了。
没有一个文件是超4G的。
而 templog.ldf 当前是 3.9G,再增 100M 就超4G了。
换用 NTFS 文件系统。
否则文件自动增长没意义,对现场数据库来说,4G文件太小了。
#9
每个磁盘文件系统全是NTFS
#10
既然会经常性报“日志已满”错误,在磁盘容量够的情况下直接分配足够的空间。
比如手工指定 templog.ldf 的大小为 20G,重启之后默认大小就是 20G,省去了不停增长的开销。
比如手工指定 templog.ldf 的大小为 20G,重启之后默认大小就是 20G,省去了不停增长的开销。
#11
主要问题还是你的磁盘空间不大,一般tempdb已满,,都是磁盘空间不足导致的。
#12
100G的空间应该是够用了吧
#13
可是并不是很理解这个原因? 磁盘空间足够 增量及上限均正常 按理说不会出现这种问题, 以及解决办法是重启服务就可以解决 不科学啊
#14
是不是有很多临时表
#15
tempdb重启就会重建。
关于文件大小讨论起来又是长篇大论,还观点各异。
多说无益,行动起来改大小。
#16
tempdb数据库是一个非常特殊的数据库,供所有来访问你的SQL Server的用户使用。这个库用来保存所有的临时表、存储过程和其他SQL Server建立的临时用的东西。例如,排序时要用到tempdb数据库。数据被放进tempdb数据库,排完序后再把结果返回给用户。每次SQL Server重新启动,它都会清空tempdb数据库并重建。永远不要在tempdb数据库建立需要永久保存的表。
#17
原来是这样啊,我还以为重启服务会自动把这个数据库放大 ,那么如果改大小的话这个数据库还是会满, 有没有其他能够永久解决这个的方法呢
#18
做个类比:数据在不停增多,硬盘终有一天会满,有没有永久的解决方法呢?
#19
创建个作业定时清空这个数据库可以吗
#20
不行。
tempdb就是正给运行的任务做工作空间的,那么多的硬盘空间留着发霉吗?
数据库就是用空间换时间(性能),硬盘/内存要留(预先分配)足。
tempdb就是正给运行的任务做工作空间的,那么多的硬盘空间留着发霉吗?
数据库就是用空间换时间(性能),硬盘/内存要留(预先分配)足。
#21
还有两个问题望解答
1 数据库占内存将其改小是否会对性能产生影响
2 为啥这个tempdb 有几个子文件 是干啥用的
#22
有影响。
.ndf文件也是数据文件。
#1
-- 看看什么情况
sp_helpdb tempdb
#2
用这个查出来 结果为25311.69MB 算24.7G 其他的好像没什么特别的
然后下面有 8行 1 2行没有动过 一直都是3.9 下面的 总size加起来就等于上面的 24.7G 除了第二个日志有限上限为256G 其他均无限制增长上限 不知道下面那6行是干啥的,正常情况不是只有2行吗
#3
讲道理,这个跟磁盘空间应该是没有关系的,磁盘空间充足不存在爆满现象,而增长上限均未限制
重启服务器最大的变化就是内存清掉了一些,会不会跟内存有关 64G的内存 按道理来 平常使用量基本稳定在54G左右 大部分为SQL Server所占 网上查了一下正常64G 实际可使用量不超过59G 所以猜想是不是跟内存有关 不过好像日志满了跟内存应该没有半毛钱关系啊
重启服务器最大的变化就是内存清掉了一些,会不会跟内存有关 64G的内存 按道理来 平常使用量基本稳定在54G左右 大部分为SQL Server所占 网上查了一下正常64G 实际可使用量不超过59G 所以猜想是不是跟内存有关 不过好像日志满了跟内存应该没有半毛钱关系啊
#4
既然自己分析不出来,就把运行结果帖出来,别在那里自说自话。
现在只能靠猜:是不是文件是按固定大小增长的,而增长后的大小会超过硬盘容量?
现在只能靠猜:是不是文件是按固定大小增长的,而增长后的大小会超过硬盘容量?
#5
公司电脑不能连外网 插USB 截图 ,弄了半天才弄出来
#6
tempdb 25311.69 MB sa 2 12 12 2016 Status=ONLINE, Updateability=READ_WRITE, UserAccess=MULTI_USER, Recovery=SIMPLE, Version=655, Collation=Chinese_PRC_CI_AS, SQLSortOrder=0, IsAutoCreateStatistics, IsAutoUpdateStatistics 100
tempdev 1 C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\tempdb.mdf PRIMARY 4096000 KB Unlimited 102400 KB data only
templog 2 C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\templog.ldf NULL 4096000 KB 2147483648 KB 102400 KB log only
tempdev1 3 E:\TempDB\tempdev1.ndf PRIMARY 940032 KB Unlimited 0 KB data only
tempdev2 4 E:\TempDB\tempdev2.ndf PRIMARY 1595648 KB Unlimited 0 KB data only
tempdev3 5 E:\TempDB\tempdev3.ndf PRIMARY 3793024 KB Unlimited 0 KB data only
tempdev4 6 E:\TempDB\tempdev4.ndf PRIMARY 3928768 KB Unlimited 0 KB data only
tempdev5 7 E:\TempDB\tempdev5.ndf PRIMARY 3764672 KB Unlimited 10240 KB data only
tempdev6 8 E:\TempDB\tempdev6.ndf PRIMARY 3705024 KB Unlimited 102400 KB data only
#7
按道理来说是不会这样的,因为硬盘容量可以说十分充裕 增长量最大也不过500M
#8
你是FAT32的文件系统吧。
没有一个文件是超4G的。
而 templog.ldf 当前是 3.9G,再增 100M 就超4G了。
换用 NTFS 文件系统。
否则文件自动增长没意义,对现场数据库来说,4G文件太小了。
没有一个文件是超4G的。
而 templog.ldf 当前是 3.9G,再增 100M 就超4G了。
换用 NTFS 文件系统。
否则文件自动增长没意义,对现场数据库来说,4G文件太小了。
#9
每个磁盘文件系统全是NTFS
#10
既然会经常性报“日志已满”错误,在磁盘容量够的情况下直接分配足够的空间。
比如手工指定 templog.ldf 的大小为 20G,重启之后默认大小就是 20G,省去了不停增长的开销。
比如手工指定 templog.ldf 的大小为 20G,重启之后默认大小就是 20G,省去了不停增长的开销。
#11
主要问题还是你的磁盘空间不大,一般tempdb已满,,都是磁盘空间不足导致的。
#12
100G的空间应该是够用了吧
#13
可是并不是很理解这个原因? 磁盘空间足够 增量及上限均正常 按理说不会出现这种问题, 以及解决办法是重启服务就可以解决 不科学啊
#14
是不是有很多临时表
#15
tempdb重启就会重建。
关于文件大小讨论起来又是长篇大论,还观点各异。
多说无益,行动起来改大小。
#16
tempdb数据库是一个非常特殊的数据库,供所有来访问你的SQL Server的用户使用。这个库用来保存所有的临时表、存储过程和其他SQL Server建立的临时用的东西。例如,排序时要用到tempdb数据库。数据被放进tempdb数据库,排完序后再把结果返回给用户。每次SQL Server重新启动,它都会清空tempdb数据库并重建。永远不要在tempdb数据库建立需要永久保存的表。
#17
原来是这样啊,我还以为重启服务会自动把这个数据库放大 ,那么如果改大小的话这个数据库还是会满, 有没有其他能够永久解决这个的方法呢
#18
做个类比:数据在不停增多,硬盘终有一天会满,有没有永久的解决方法呢?
#19
创建个作业定时清空这个数据库可以吗
#20
不行。
tempdb就是正给运行的任务做工作空间的,那么多的硬盘空间留着发霉吗?
数据库就是用空间换时间(性能),硬盘/内存要留(预先分配)足。
tempdb就是正给运行的任务做工作空间的,那么多的硬盘空间留着发霉吗?
数据库就是用空间换时间(性能),硬盘/内存要留(预先分配)足。
#21
还有两个问题望解答
1 数据库占内存将其改小是否会对性能产生影响
2 为啥这个tempdb 有几个子文件 是干啥用的
#22
有影响。
.ndf文件也是数据文件。