select sql_text from v$sqlarea;

shahand 2002-09-03 12:00:13
即oracle中所谓 SQL共享池 是干什么的
...全文
132 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
bluecetacean 2002-09-03
  • 打赏
  • 举报
回复
ORACLE SGA 的分配

ORACLE 8.0.X 版本

SGA=((db_block_buffers * block size)+(shared_pool_size+large_pool_size+log_buffers)+1MB

ORACLE 8.1.X 版本

SGA=((db_block_buffers * block size)+(shared_pool_size+large_pool_size+java_pool_size+log_buffers)+1MB

理论上SGA可占OS系统物理内存的1/2——1/3,我们可以根据需求调整

SUN Solaris里/etc/system文件里的几个参数同样跟内存分配有关

ORACLE安装时缺省的设置: 建议修改的设置:
set shmsys:shminfo_shmmax=4294967295
set shmsys:shminfo_shmmin=1
set shmsys:shminfo_shmmni=100
set shmsys:shminfo_shmseg=15
set semsys:seminfo_semmns=200
set semsys:seminfo_semmni=70
set ulimit=3000000
set semsys:seminfo_semmni=315
set semsys:seminfo_semmsl=300
set semsys:seminfo_semmns=630
set semsys:seminfo_semopm=315
set semsys:seminfo_semvmx=32767
set shmsys:shminfo_shmmax=4294967295
set shmsys:shminfo_shmmni=315
set shmsys:shminfo_shmseg=10
set shmsys:shminfo_shmmin=1

其中这些参数的含义

shmmax - 共享内存段,建议设大点, 达到最大SGA
shmmin - 最小的共享内存段.
shmmni - 共享内存标志符的数量.
shmseg - 一个进程可分配的最大内存段数.
shmall - 最大可允许的内存数,比SGA还要大.
semmns - 信号量,跟ORACLE的PROCESS数有关.
semmsl - 一个信号量中最大的信号量数.
penitent 2002-09-03
  • 打赏
  • 举报
回复
它存放你执行过的sql语句或sql块,按照LRU(最新最少使用)算法保留最新的sql,当你输入同样的sql语句(必须一模一样),它是先转换成一个哈希值,然后去找同样的语句,找到后,就可以不必编译,直接执行了。
如select * from tablename where is =1;
和select * from tablename where is =2;它会认为是两个不同的语句。
jiezhi 2002-09-03
  • 打赏
  • 举报
回复
存放数据库用户执行的sql语句的解释版本,还有这些语句的执行计划,这个
是为了在用户执行类似格式的sql语句的时候提高速度。

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧