There is not enough procedure cache to run this procedure, trigger, or SQL batch. Retry later, or ask your SA to reconfigure SQL
2007-03-17 17:40
741 查看
sybase数据库文章:
笔者在sybase数据库中,打算在40万条的表中进行没有索引的数据检索,结果死机,怀疑tempdb的大小不足,将tempdb数据库设备大小增加到100M后,提示如下结果:
There is not enough procedure cache to run this procedure, trigger, or SQL batch. Retry later, or ask your SA to reconfigure SQL Server with more procedure cache.
经网上搜索,其原因是内存不足!
解决方法:
在数据库服务的“configure”中修改total mermory :将其值增加10倍,重新启动数据库后,再执行查询结果成功!
ASE对资源的使用设计的比较精简,浪费的资源很少。在安装完ASE后其中的所有参数default 是比较低的,不能满足企业级用户的需要。
第一步,你必须要根据数据量和用户数,还有应用的特点对ASE的参数做出合理的调整。
通常的做法是:
max memory = physical memory * 70-80%
default data cache = max memory * 50%
procedure cache size = max memory * 20-30%
number of user connections = n (default = 25)
number of lock = n * 单个用户所需的最大锁数 * 120%
(一般这个比较难估计,syabse的资深工程师给我的参考值:有用户配到180万,对于你的10G的数据量我估计先配 100000)
number of open objects = 10000
number of open indexed = 10000
这样的配置基本能正常使用了,具体怎么配置可以到sybase官方网站下载手册,英文好的看洋文,也有中文的。
然后,如果发现性能不如你预期的好,就需要发挥你的DBA才能来调优了。对于调优,我也没有独门秘笈,这里需要运用的知识较多,这次就不细说了。
ASE提供有一些工具可以帮助你找到影响性能的瓶颈:
用法很简单:
sp_sysmon "00:03:00"
这会显示3分钟内所有的计数信息,有四大类 18 项。
其中第一项'kernel'信息,显示这段时间内cpu的使用率,io的繁忙度。这很有帮助。
我再费点口舌:以后sp_configure的输出信息不需要发出来了,没什么大用。给sp_sysmon信息就行了。
提醒一下:对数据库的大小安排,tempdb大小,log的大小分配都可以通过利用并行io提高ASE性能。
给的通常的公式:
数据库大小=DB
tempdb = DB * 20% (经验值)
log size = DB * 20%
笔者在sybase数据库中,打算在40万条的表中进行没有索引的数据检索,结果死机,怀疑tempdb的大小不足,将tempdb数据库设备大小增加到100M后,提示如下结果:
There is not enough procedure cache to run this procedure, trigger, or SQL batch. Retry later, or ask your SA to reconfigure SQL Server with more procedure cache.
经网上搜索,其原因是内存不足!
解决方法:
在数据库服务的“configure”中修改total mermory :将其值增加10倍,重新启动数据库后,再执行查询结果成功!
ASE对资源的使用设计的比较精简,浪费的资源很少。在安装完ASE后其中的所有参数default 是比较低的,不能满足企业级用户的需要。
第一步,你必须要根据数据量和用户数,还有应用的特点对ASE的参数做出合理的调整。
通常的做法是:
max memory = physical memory * 70-80%
default data cache = max memory * 50%
procedure cache size = max memory * 20-30%
number of user connections = n (default = 25)
number of lock = n * 单个用户所需的最大锁数 * 120%
(一般这个比较难估计,syabse的资深工程师给我的参考值:有用户配到180万,对于你的10G的数据量我估计先配 100000)
number of open objects = 10000
number of open indexed = 10000
这样的配置基本能正常使用了,具体怎么配置可以到sybase官方网站下载手册,英文好的看洋文,也有中文的。
然后,如果发现性能不如你预期的好,就需要发挥你的DBA才能来调优了。对于调优,我也没有独门秘笈,这里需要运用的知识较多,这次就不细说了。
ASE提供有一些工具可以帮助你找到影响性能的瓶颈:
用法很简单:
sp_sysmon "00:03:00"
这会显示3分钟内所有的计数信息,有四大类 18 项。
其中第一项'kernel'信息,显示这段时间内cpu的使用率,io的繁忙度。这很有帮助。
我再费点口舌:以后sp_configure的输出信息不需要发出来了,没什么大用。给sp_sysmon信息就行了。
提醒一下:对数据库的大小安排,tempdb大小,log的大小分配都可以通过利用并行io提高ASE性能。
给的通常的公式:
数据库大小=DB
tempdb = DB * 20% (经验值)
log size = DB * 20%
相关文章推荐
- 服务器磁盘扩展卷时遭遇“There is not enough space available on the disk(s) to complete this operation.”错误
- Cannot connect to WMI provider.You do not have permission or the server is unreachable.Note that you can only manager SQL Server 2005 and later version with SQL Server Configuration Manager.Invalid namespace [0x8004100e]
- The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.
- mysql本地访问linux服务器,出现SQLSTATE[HY000] [1130] Host '127.0.0.1' is not allowed to connect to this
- 关于VMware出现 Not enough physical memory is available to power on this virtual machine
- SQL Server has encountered 1 occurrence(s) of cachestore flush for the 'Object Plans' cachestore (part of plan cache) due to some database maintenance or reconfigure operations.
- soon or later,There is a decision to make.
- The application is not licensed to modify or create schema for this type of data 解决办法
- "The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods i"解决方法
- Project configuration is not up-to-date with pom.xml. Run Maven->Update Project or use Quick Fix
- 故障解决:Failure adding assembly to the cache: Access denied. You might not have administrative credentials to perform this task. Contact your system administrator for assistance.
- The BASEDIR environment variable is not defined correctly This environment variable is needed to run
- Microsoft Office Excel cannot open or save any more documents because there is not enough available
- FIX: "There is insufficient system memory in resource pool 'internal' to run this query" error
- ExpressCache : Product is not licensed to run on this system
- sql:is not allowed to connect to this MySQL server
- ERROR 1336 (0A000): Dynamic SQL is not allowed in stored function or trigger
- Project configuration is not up-to-date with pom.xml. Run Maven->Update Project or use Quick Fix
- 奇葩问题:This file could not be checked in because the original version of the file on the server was moved or deleted. A new version of this file has been saved to the server, but your check-in comments were not saved
- This server version is not supported. Only servers up to Microsoft SQL Server 2005 are supported.