sybase ase 内存使用解析
ASE消耗得内存=total logical memory+procedure cache+data cachemax memory:
max memory > total logical memory,指定ase要用的最大内存。
allocate max shared memory:设置为1,指ase启动时直接将max memory指定得物理内存预留给ase。
dynamic allocation on demand:设置为1,指通过sp_configure指定得参数值所需得内存不是立即分配给特定得进程,而是根据该参数实际运行值分配内存。
total logical memory:
=memory used ASE for nonconfigurable data structures + memory for all user-configurable parameter,根据ase配置参数计算出的所需内存。
total physical memory:
ase实际运行时消耗的内存。
default data cache:
数据缓存,used for data, index, and log pages. sp_cacheconfig, sp_helpcache
procedure cache:
过程缓存,used for stored procedures and triggers and for short-term memory needs such as statistics and query plans for parallel queries.
即席查询用到distinct关键字会用到procedure cache,create index命令也会用到该块内存,所有执行这些操作也会报过程缓存不足的错误。
heap memory:
是ase内部使用的内存池,动态按需分配,启动时一般预留1M,和它有关的几个参数:
heap memory per user(每个用户连接使用的内存,一般是page size的三倍);number of user connections;number of worker processes;可以通过select @@heapmemsize看它动态值;计算公式
:((1024 * 1024) + (heap memory in bytes)* (number of user connections + number of worker processes) )
监控metadata cache使用状况:
sp_monitorconfig “number of open indexses”
sp_monitorconfig “procedure cache size”
监控缓存(数据和过程缓存)使用情况:
sp_configure “total data cache size”
和内存有关得几个参数:
default data cache
procedure cache size
default network packet size(乘用户连接数)
stack size and stack guard size(乘用户连接数)
user log cache size(乘用户连接数)
number of open databases
number of open indexes
number of open objects
Number of locks
这个不错,很适合我这种新手学习
页:
[1]