There is not enough procedure cache to run this procedure, trigger, or SQL batch. Retry later, or as...

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%

### 解决方案 在命令行中遇到 `'1' is not recognized as an internal or external command, operable program or batch file` 的错误,通常是因为系统无法识别 `1` 作为有效的命令或程序[^1]。以下是一些可能的原因及解决方法: #### 1. 环境变量配置问题 如果 `1` 是一个可执行文件的名称(例如某个工具或脚本),但系统无法找到它,可能是环境变量未正确设置。确保该文件所在的目录已添加到系统的 `PATH` 变量中。可以通过以下步骤检查和修改环境变量: - 打开系统属性 -> 高级系统设置 -> 环境变量。 - 在 `系统变量` 中找到 `Path`,并编辑以包含可执行文件所在的目录。 #### 2. 文件名或路径问题 如果 `1` 是一个脚本或程序的名称,确保文件名没有拼写错误,并且文件确实存在于指定路径中。尝试使用绝对路径运行命令,例如: ```cmd C:\path\to\your\file\1.exe ``` #### 3. 命令解释器限制 某些命令解释器(如 CMD 或 PowerShell)对文件名有特殊要求。如果文件名仅包含数字(如 `1.exe`),可能会导致解析问题。尝试重命名文件为更具描述性的名称,例如 `script1.exe`,然后重新运行。 #### 4. 权限问题 如果文件存在但仍然无法运行,可能是权限不足。尝试以管理员身份运行命令提示符,或者更改文件的权限设置。可以使用以下命令赋予当前用户完全控制权限(假设文件位于 `C:\path\to\file`): ```cmd icacls "C:\path\to\file" /grant administrators:F ``` #### 5. 使用正确的终端 如果命令是在特定环境中运行(如 Visual Studio 或 Git Bash),但未正确配置终端,可能会导致此错误。例如,Git Bash 使用的是类 Unix 环境,而 Windows 命令提示符则不同[^5]。确保在适当的终端中运行命令。 #### 6. 示例代码 以下是一个简单的批处理脚本示例,用于测试是否可以运行名为 `1.bat` 的脚本: ```batch @echo off echo Hello World pause ``` 将上述内容保存为 `1.bat`,并确保其所在目录已添加到 `PATH` 中。然后在命令行中运行 `1`,验证是否成功。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值