发现随着运行时间的推进,sqlservr.exe的进程耗用的内容不断地增加,慢慢地达到7、8百MB,甚至上GB.
请大家支支招,什么原因引起的?
15 个解决方案
#1
没遇到过,与你一起等待高手
#3
我用的还是2000的数据库
#4
解决?
遇到问题了吗?内存在数据库应用中是越多越好,缓冲区命中率和存活率越高越好。
SQL有其自身的内存管理机制,如果内存低于2-6G(可以考虑添加硬件)。
遇到问题了吗?内存在数据库应用中是越多越好,缓冲区命中率和存活率越高越好。
SQL有其自身的内存管理机制,如果内存低于2-6G(可以考虑添加硬件)。
#5
这个里面说的是支持2005,不过刚一试,发现2000里面也能用。
谢谢
#6
的确。缓存的内容越多,命中率是会提高。
但内存占用越高越好这个说法正确吗?
因为我现在看到数据库的内存是持续增加了,内存使用量已经超出了物理内存的最大值,当然这里面是有虚拟内存的。
而如果我将现有的2G内存加到6G,设置更高的8G,是否数据库同样会不停地慢慢增加内存的占用,知道占完所有的物理内存呢??
当然我大概也可以通过对数据库进行设置来限制数据库的最大内存使用。但是我想知道我这个数据库内存不停地涨,是由于什么原因引起的涨?是正确的系统缓存数据 还是 错误的由于程序设计的问题(如,连接不释放等)?
#7
DBCC MEMORYSTATUS report:
Buffer Distribution Buffers
------------------------------ -----------
Stolen 890
Free 123119
Procedures 1446
Inram 0
Dirty 352
Kept 0
I/O 0
Latched 28
Other 5835
(9 行受影响)
////记得microsoft说过,如果target的值大于commited的值,那么需要使用的memory将会增加。如果一直是这个状态,那么也就会持续增加。
Buffer Counts Buffers
------------------------------ -----------
Commited 131670
Target 132652
Hashed 6215
InternalReservation 223
ExternalReservation 1716
Min Free 64
Visible 132652
(7 行受影响)
Procedure Cache Value
------------------------------ -----------
TotalProcs 399
TotalPages 1446
InUsePages 528
(3 行受影响)
Dynamic Memory Manager Buffers
------------------------------ -----------
Stolen 2088
OS Reserved 960
OS Committed 916
OS In Use 906
General 1268
QueryPlan 1493
Optimizer 0
Utilities 5
Connection 169
(9 行受影响)
Global Memory Objects Buffers
------------------------------ -----------
Resource 1025
Locks 53
XDES 14
SQLCache 128
Replication 2
LockBytes 2
ServerGlobal 22
(7 行受影响)
Query Memory Objects Value
------------------------------ -----------
Grants 2
Waiting 0
Available (Buffers) 96658
Maximum (Buffers) 98622
(4 行受影响)
Optimization Queue Value
------------------------------ -----------
Optimizing 0
Waiting 0
Available 8
Maximum 8
(4 行受影响)
DBCC CACHESTATS report:
Object Type Hit Ratio Object Count Avg Cost Avg Pages LW Object Count LW Avg Cost LW Avg Stay (ms) LW Avg Use Count
----------- ---------------------- ------------ ---------------------- ---------------------- --------------- ---------------------- ---------------------- ----------------------
Proc 0.630434782608696 13 1 1.92307692307692 0 0 0 0
Prepared 0.963360707517372 352 0.948863636363636 4.09375 0 0 0 0
Adhoc 0.995789473684211 36 0.916666666666667 2.25 0 0 0 0
ReplProc 0 0 0 0 0 0 0 0
Trigger 0.333333333333333 2 1 1.5 0 0 0 0
Cursor 0.603846153846154 53 1 6.77358490566038 0 0 0 0
Exec Cxt 0.709510936347997 148 0.858108108108108 4.42567567567568 0 0 0 0
View 0.966244725738397 5 1 2.4 0 0 0 0
Default 0 3 1 1 0 0 0 0
UsrTab 0 0 0 0 0 0 0 0
SysTab 0 0 0 0 0 0 0 0
Check 0 0 0 0 0 0 0 0
Rule 0 0 0 0 0 0 0 0
Summary 0.822976190476191 612 0.931372549019608 4.2140522875817 0 0 0 0
(14 行受影响)
Buffer Distribution Buffers
------------------------------ -----------
Stolen 890
Free 123119
Procedures 1446
Inram 0
Dirty 352
Kept 0
I/O 0
Latched 28
Other 5835
(9 行受影响)
////记得microsoft说过,如果target的值大于commited的值,那么需要使用的memory将会增加。如果一直是这个状态,那么也就会持续增加。
Buffer Counts Buffers
------------------------------ -----------
Commited 131670
Target 132652
Hashed 6215
InternalReservation 223
ExternalReservation 1716
Min Free 64
Visible 132652
(7 行受影响)
Procedure Cache Value
------------------------------ -----------
TotalProcs 399
TotalPages 1446
InUsePages 528
(3 行受影响)
Dynamic Memory Manager Buffers
------------------------------ -----------
Stolen 2088
OS Reserved 960
OS Committed 916
OS In Use 906
General 1268
QueryPlan 1493
Optimizer 0
Utilities 5
Connection 169
(9 行受影响)
Global Memory Objects Buffers
------------------------------ -----------
Resource 1025
Locks 53
XDES 14
SQLCache 128
Replication 2
LockBytes 2
ServerGlobal 22
(7 行受影响)
Query Memory Objects Value
------------------------------ -----------
Grants 2
Waiting 0
Available (Buffers) 96658
Maximum (Buffers) 98622
(4 行受影响)
Optimization Queue Value
------------------------------ -----------
Optimizing 0
Waiting 0
Available 8
Maximum 8
(4 行受影响)
DBCC CACHESTATS report:
Object Type Hit Ratio Object Count Avg Cost Avg Pages LW Object Count LW Avg Cost LW Avg Stay (ms) LW Avg Use Count
----------- ---------------------- ------------ ---------------------- ---------------------- --------------- ---------------------- ---------------------- ----------------------
Proc 0.630434782608696 13 1 1.92307692307692 0 0 0 0
Prepared 0.963360707517372 352 0.948863636363636 4.09375 0 0 0 0
Adhoc 0.995789473684211 36 0.916666666666667 2.25 0 0 0 0
ReplProc 0 0 0 0 0 0 0 0
Trigger 0.333333333333333 2 1 1.5 0 0 0 0
Cursor 0.603846153846154 53 1 6.77358490566038 0 0 0 0
Exec Cxt 0.709510936347997 148 0.858108108108108 4.42567567567568 0 0 0 0
View 0.966244725738397 5 1 2.4 0 0 0 0
Default 0 3 1 1 0 0 0 0
UsrTab 0 0 0 0 0 0 0 0
SysTab 0 0 0 0 0 0 0 0
Check 0 0 0 0 0 0 0 0
Rule 0 0 0 0 0 0 0 0
Summary 0.822976190476191 612 0.931372549019608 4.2140522875817 0 0 0 0
(14 行受影响)
#8
看6F的回复,您已经知道问题所在了。
祝好运!
祝好运!
#9
晕倒。
我可是那么多个问号呀。
就是不太了解。
#10
这是很正常的,应该增加内存。
#11
32位的sql,想让它用多内存(2G以上、3G以上)还不行呢,必须专门的设置后才可以(也不是直接使用,效率会有折扣)
如果一台机的内存不多,而且还有别的服务也需要内存,那就只好委屈sql了:设置它的最大内存使用量
如果一台机的内存不多,而且还有别的服务也需要内存,那就只好委屈sql了:设置它的最大内存使用量
#12
这么说并不是应用程序有问题而造成的?
#13
从问号大概能猜到你已经或多或少知道该怎样处理,只不过希望再了解更多。
按你期初的想法,找找原因,可能就有答案了。
按你期初的想法,找找原因,可能就有答案了。
#14
我也遇到这样的问题,怎么回事,sqlservr.exe一下低一下高,页面总是报超时,高手指点一下!
#15
超时的问题估计是sql语句有问题,或者是一个sql语句中执行的操作太多。
我曾写过双重嵌套的sql语句,费时的操作太多,执行也是很慢。
我曾写过双重嵌套的sql语句,费时的操作太多,执行也是很慢。
#1
没遇到过,与你一起等待高手
#2
#3
我用的还是2000的数据库
#4
解决?
遇到问题了吗?内存在数据库应用中是越多越好,缓冲区命中率和存活率越高越好。
SQL有其自身的内存管理机制,如果内存低于2-6G(可以考虑添加硬件)。
遇到问题了吗?内存在数据库应用中是越多越好,缓冲区命中率和存活率越高越好。
SQL有其自身的内存管理机制,如果内存低于2-6G(可以考虑添加硬件)。
#5
这个里面说的是支持2005,不过刚一试,发现2000里面也能用。
谢谢
#6
的确。缓存的内容越多,命中率是会提高。
但内存占用越高越好这个说法正确吗?
因为我现在看到数据库的内存是持续增加了,内存使用量已经超出了物理内存的最大值,当然这里面是有虚拟内存的。
而如果我将现有的2G内存加到6G,设置更高的8G,是否数据库同样会不停地慢慢增加内存的占用,知道占完所有的物理内存呢??
当然我大概也可以通过对数据库进行设置来限制数据库的最大内存使用。但是我想知道我这个数据库内存不停地涨,是由于什么原因引起的涨?是正确的系统缓存数据 还是 错误的由于程序设计的问题(如,连接不释放等)?
#7
DBCC MEMORYSTATUS report:
Buffer Distribution Buffers
------------------------------ -----------
Stolen 890
Free 123119
Procedures 1446
Inram 0
Dirty 352
Kept 0
I/O 0
Latched 28
Other 5835
(9 行受影响)
////记得microsoft说过,如果target的值大于commited的值,那么需要使用的memory将会增加。如果一直是这个状态,那么也就会持续增加。
Buffer Counts Buffers
------------------------------ -----------
Commited 131670
Target 132652
Hashed 6215
InternalReservation 223
ExternalReservation 1716
Min Free 64
Visible 132652
(7 行受影响)
Procedure Cache Value
------------------------------ -----------
TotalProcs 399
TotalPages 1446
InUsePages 528
(3 行受影响)
Dynamic Memory Manager Buffers
------------------------------ -----------
Stolen 2088
OS Reserved 960
OS Committed 916
OS In Use 906
General 1268
QueryPlan 1493
Optimizer 0
Utilities 5
Connection 169
(9 行受影响)
Global Memory Objects Buffers
------------------------------ -----------
Resource 1025
Locks 53
XDES 14
SQLCache 128
Replication 2
LockBytes 2
ServerGlobal 22
(7 行受影响)
Query Memory Objects Value
------------------------------ -----------
Grants 2
Waiting 0
Available (Buffers) 96658
Maximum (Buffers) 98622
(4 行受影响)
Optimization Queue Value
------------------------------ -----------
Optimizing 0
Waiting 0
Available 8
Maximum 8
(4 行受影响)
DBCC CACHESTATS report:
Object Type Hit Ratio Object Count Avg Cost Avg Pages LW Object Count LW Avg Cost LW Avg Stay (ms) LW Avg Use Count
----------- ---------------------- ------------ ---------------------- ---------------------- --------------- ---------------------- ---------------------- ----------------------
Proc 0.630434782608696 13 1 1.92307692307692 0 0 0 0
Prepared 0.963360707517372 352 0.948863636363636 4.09375 0 0 0 0
Adhoc 0.995789473684211 36 0.916666666666667 2.25 0 0 0 0
ReplProc 0 0 0 0 0 0 0 0
Trigger 0.333333333333333 2 1 1.5 0 0 0 0
Cursor 0.603846153846154 53 1 6.77358490566038 0 0 0 0
Exec Cxt 0.709510936347997 148 0.858108108108108 4.42567567567568 0 0 0 0
View 0.966244725738397 5 1 2.4 0 0 0 0
Default 0 3 1 1 0 0 0 0
UsrTab 0 0 0 0 0 0 0 0
SysTab 0 0 0 0 0 0 0 0
Check 0 0 0 0 0 0 0 0
Rule 0 0 0 0 0 0 0 0
Summary 0.822976190476191 612 0.931372549019608 4.2140522875817 0 0 0 0
(14 行受影响)
Buffer Distribution Buffers
------------------------------ -----------
Stolen 890
Free 123119
Procedures 1446
Inram 0
Dirty 352
Kept 0
I/O 0
Latched 28
Other 5835
(9 行受影响)
////记得microsoft说过,如果target的值大于commited的值,那么需要使用的memory将会增加。如果一直是这个状态,那么也就会持续增加。
Buffer Counts Buffers
------------------------------ -----------
Commited 131670
Target 132652
Hashed 6215
InternalReservation 223
ExternalReservation 1716
Min Free 64
Visible 132652
(7 行受影响)
Procedure Cache Value
------------------------------ -----------
TotalProcs 399
TotalPages 1446
InUsePages 528
(3 行受影响)
Dynamic Memory Manager Buffers
------------------------------ -----------
Stolen 2088
OS Reserved 960
OS Committed 916
OS In Use 906
General 1268
QueryPlan 1493
Optimizer 0
Utilities 5
Connection 169
(9 行受影响)
Global Memory Objects Buffers
------------------------------ -----------
Resource 1025
Locks 53
XDES 14
SQLCache 128
Replication 2
LockBytes 2
ServerGlobal 22
(7 行受影响)
Query Memory Objects Value
------------------------------ -----------
Grants 2
Waiting 0
Available (Buffers) 96658
Maximum (Buffers) 98622
(4 行受影响)
Optimization Queue Value
------------------------------ -----------
Optimizing 0
Waiting 0
Available 8
Maximum 8
(4 行受影响)
DBCC CACHESTATS report:
Object Type Hit Ratio Object Count Avg Cost Avg Pages LW Object Count LW Avg Cost LW Avg Stay (ms) LW Avg Use Count
----------- ---------------------- ------------ ---------------------- ---------------------- --------------- ---------------------- ---------------------- ----------------------
Proc 0.630434782608696 13 1 1.92307692307692 0 0 0 0
Prepared 0.963360707517372 352 0.948863636363636 4.09375 0 0 0 0
Adhoc 0.995789473684211 36 0.916666666666667 2.25 0 0 0 0
ReplProc 0 0 0 0 0 0 0 0
Trigger 0.333333333333333 2 1 1.5 0 0 0 0
Cursor 0.603846153846154 53 1 6.77358490566038 0 0 0 0
Exec Cxt 0.709510936347997 148 0.858108108108108 4.42567567567568 0 0 0 0
View 0.966244725738397 5 1 2.4 0 0 0 0
Default 0 3 1 1 0 0 0 0
UsrTab 0 0 0 0 0 0 0 0
SysTab 0 0 0 0 0 0 0 0
Check 0 0 0 0 0 0 0 0
Rule 0 0 0 0 0 0 0 0
Summary 0.822976190476191 612 0.931372549019608 4.2140522875817 0 0 0 0
(14 行受影响)
#8
看6F的回复,您已经知道问题所在了。
祝好运!
祝好运!
#9
晕倒。
我可是那么多个问号呀。
就是不太了解。
#10
这是很正常的,应该增加内存。
#11
32位的sql,想让它用多内存(2G以上、3G以上)还不行呢,必须专门的设置后才可以(也不是直接使用,效率会有折扣)
如果一台机的内存不多,而且还有别的服务也需要内存,那就只好委屈sql了:设置它的最大内存使用量
如果一台机的内存不多,而且还有别的服务也需要内存,那就只好委屈sql了:设置它的最大内存使用量
#12
这么说并不是应用程序有问题而造成的?
#13
从问号大概能猜到你已经或多或少知道该怎样处理,只不过希望再了解更多。
按你期初的想法,找找原因,可能就有答案了。
按你期初的想法,找找原因,可能就有答案了。
#14
我也遇到这样的问题,怎么回事,sqlservr.exe一下低一下高,页面总是报超时,高手指点一下!
#15
超时的问题估计是sql语句有问题,或者是一个sql语句中执行的操作太多。
我曾写过双重嵌套的sql语句,费时的操作太多,执行也是很慢。
我曾写过双重嵌套的sql语句,费时的操作太多,执行也是很慢。