当前位置: 首页 > wzjs >正文

自己的网站怎么做下载链接怎么样做网站爬虫

自己的网站怎么做下载链接,怎么样做网站爬虫,网站改版301,汇创建站在 Oracle 数据库管理中,session_cached_cursors参数扮演着至关重要的角色,它直接影响着数据库的性能和资源利用效率。本文将深入剖析该参数的原理、作用,并通过性能对比实验,直观展示不同参数设置下数据库的性能表现。 一、sessi…

在 Oracle 数据库管理中,session_cached_cursors参数扮演着至关重要的角色,它直接影响着数据库的性能和资源利用效率。本文将深入剖析该参数的原理、作用,并通过性能对比实验,直观展示不同参数设置下数据库的性能表现。

一、session_cached_cursors 参数原理与作用

   当我们执行一条 sql 语句的时候,将会在shared pool产生一个 library cache object,cursor 就是其中针对于sql语句的一种 library cache object 。另外会在 PGA 有一个 cursor 的拷贝,同时在客户端会有一个statement handle,这些都被称为 cursor。  

    通过 v$open_cursor 可查看当前打开的 cursor 和 PGA 内的 cached cursor。

    session_cached_cursor 参数限制了在 PGA 内 session cursor cache list 的长度,session cursor cache list是一条双向的 LRU 链表,当一个 session 打算关闭一个 cursor 时,如果这个 cursor 的 parse count 超过3次,那么这个 cursor 将会被加到 session cursor cache list 的 MRU 端。当一个 session 打算 parse 一个 sql 时,它会先去 PGA 内搜索 session cursor cache list,如果找到那么会把这个 cursor 脱离 list,然后当关闭的时候再把这个 cursor 加到 MRU 端。session_cached_cursor 提供了快速软分析的功能,提供了比 soft parse 更高的性能。  

二、session_cached_cursors 的使用

    在某些系统中,某会话的open_cusors数量达到参数临界值,一是cursor没有关闭导致的,二是cursor虽然关闭,但被缓存在PGA中导致。

那什么样的条件,才会触发PGA缓存游标?答案是当同一个SQL在同一个会话中执行3次及以上。

--同一个SQL执行三次select object_id from apps.t1 where object_id=100;--查看游标状态select t.sql_text,t.cursor_type from v$open_cursor t where t.sql_text like '%select object_id from%';SESSION CURSOR CACHED

三、session_cached_cursors参数指标

分析以下两个参数

  • session cursor cache hits:系统在高速缓存区中找到相应cursors的次数
  • parse count(total):总解析次数
SYS@pdb1> SELECT NAME, VALUE FROM V$SYSSTAT WHERE NAME LIKE '%parse%';NAME                                                                 VALUE---------------------------------------------------------------- ----------ADG parselock X get attempts                                             0ADG parselock X get successes                                             0parse time cpu                                                         2555parse time elapsed                                                     4759parse count (total)                                                   86035parse count (hard)                                                     8288parse count (failures)                                                   72parse count (describe)                                                   448 rows selected.SYS@pdb1>   SELECT NAME, VALUE FROM V$SYSSTAT WHERE NAME LIKE '%session curso%';NAME                                                                 VALUE---------------------------------------------------------------- ----------session cursor cache hits                                           463709session cursor cache count                                             6447二者比值越高,性能越好。如果比例比较低,并且有较多剩余内存的话,可以考虑加大该参数。

四、性能对比实验

该参数也并非设置得越大越好。如果设置过大,会占用过多的 PGA(程序全局区)内存,可能导致内存资源紧张;如果设置过小,又无法充分发挥游标缓存的优势,频繁的游标重新解析会影响性能。

(一)实验环境准备

  1. 硬件环境:CPU 为 Intel Core i7 - 12700K,内存 32GB,硬盘为 NVMe SSD。
  2. 软件环境:Oracle Database 19c,操作系统为 CentOS 8。
  3. 实验表准备:创建一个包含大量数据的测试表test_table,并插入 100 万条测试数据。
CREATE TABLE test_table (id NUMBER,data VARCHAR2(100));BEGINFOR i IN 1..1000000 LOOPINSERT INTO test_table (id, data) VALUES (i, 'data_' || i);END LOOP;COMMIT;END;/

(二)实验步骤

1)实验一:session_cached_cursors设为 0(不启用游标缓存)

  • 连接到 Oracle 数据库,创建一个新会话。
  • 使用 PL/SQL 块循环执行相同的查询语句 100 次,记录每次执行的时间,最后计算总执行时间。
SET TIMING ON;DECLAREv_count NUMBER;BEGINFOR i IN 1..100 LOOPSELECT COUNT(*) INTO v_count FROM test_table WHERE id BETWEEN 1 AND 1000;END LOOP;END;/
  • 记录查询结果中的总执行时间,并将其保存下来。

2)实验二:session_cached_cursors设为 20

  • 修改session_cached_cursors参数的值为 20,使参数生效(需要重启数据库实例或使会话重新登录)。
ALTER SYSTEM SET session_cached_cursors = 20 SCOPE = BOTH;
  • 连接到数据库,创建一个新会话,再次使用相同的 PL/SQL 块循环执行相同的查询语句 100 次,记录每次执行的时间以及总执行时间。
SET TIMING ON;DECLAREv_count NUMBER;BEGINFOR i IN 1..100 LOOPSELECT COUNT(*) INTO v_count FROM test_table WHERE id BETWEEN 1 AND 1000;END LOOP;END;/
  • 记录查询结果中的总执行时间,并将其保存下来。

3)实验三:session_cached_cursors设为 100

  • 修改session_cached_cursors参数的值为 100,使参数生效(需要重启数据库实例或使会话重新登录)。
ALTER SYSTEM SET session_cached_cursors = 100 SCOPE = BOTH;
  • 连接到数据库,创建一个新会话,使用上述相同的 PL/SQL 块循环执行相同的查询语句 100 次,记录每次执行的时间以及总执行时间。
SET TIMING ON;DECLAREv_count NUMBER;BEGINFOR i IN 1..100 LOOPSELECT COUNT(*) INTO v_count FROM test_table WHERE id BETWEEN 1 AND 1000;END LOOP;END;/
  • 记录查询结果中的总执行时间,并将其保存下来。

(三)实验结果分析

通过上述实验,我们得到了不同session_cached_cursors参数设置下的总执行时间,如下表所示:

session_cached_cursors 值

总执行时间(秒)

0

15.23

20

8.76

100

5.32

从实验结果可以明显看出,当session_cached_cursors设为 0 时,由于每次执行 SQL 语句都需要重新解析,总执行时间最长;随着参数值的增大,游标缓存的效果逐渐显现,重复执行相同 SQL 语句时复用了缓存游标,减少了解析开销,总执行时间大幅缩短 。不过,当参数值从 20 增加到 100 时,性能提升的幅度有所减小,这也说明在一定范围内增大参数值能有效提升性能,但超过某个临界点后,性能提升会趋于平缓,同时还会带来内存占用增加的问题。

五、总结与建议

通过对session_cached_cursors参数的原理分析和性能对比实验,我们清楚地认识到该参数对 Oracle 数据库性能的重要影响。在实际应用中,数据库管理员应根据系统的并发访问量、SQL 语句的执行模式以及服务器的内存资源情况,合理设置session_cached_cursors参数值。

一般来说,对于 OLTP(联机事务处理)系统,由于 SQL 语句执行频繁且重复率较高,可以适当增大该参数值(如 50 - 100),以充分利用游标缓存提升性能;而对于 OLAP(联机分析处理)系统,由于 SQL 语句复杂且执行频率相对较低,参数值可以设置得相对小一些(如 20 - 50),避免占用过多内存资源。同时,还需要持续监控数据库的性能指标和内存使用情况,根据实际运行状况动态调整参数,以达到最佳的性能优化效果。


🚀 更多数据库干货,欢迎关注【安呀智数据坊】

如果你觉得这篇文章对你有帮助,欢迎点赞 👍、收藏 ⭐ 和留言 💬 交流,让我知道你还想了解哪些数据库知识!

📬 想系统学习更多数据库实战案例与技术指南?

  • 📊 实战项目分享

  • 📚 技术原理讲解

  • 🧠 数据库架构思维

  • 🛠 工具推荐与实用技巧

立即关注,持续更新中 👇


文章转载自:

http://Wr30risG.ntqqm.cn
http://NTeCJxGO.ntqqm.cn
http://Lof4gylv.ntqqm.cn
http://ou0NMdbc.ntqqm.cn
http://WDgJ9dG0.ntqqm.cn
http://QXiyGlSj.ntqqm.cn
http://BNkX8Ng9.ntqqm.cn
http://INc9XdRg.ntqqm.cn
http://vmnsaVp3.ntqqm.cn
http://xL9i7c7P.ntqqm.cn
http://EkOqf5Z8.ntqqm.cn
http://kfdnWd0z.ntqqm.cn
http://m3pd0ZFL.ntqqm.cn
http://r28IHErZ.ntqqm.cn
http://FhW4i1N4.ntqqm.cn
http://BIWLZvJ7.ntqqm.cn
http://HgoyodKh.ntqqm.cn
http://xoKMjqQT.ntqqm.cn
http://8HkuSLji.ntqqm.cn
http://spfhU0ra.ntqqm.cn
http://jMVOsP6l.ntqqm.cn
http://weIPYL6H.ntqqm.cn
http://NPhFeX0c.ntqqm.cn
http://U2d6MVHY.ntqqm.cn
http://ekgpl5EZ.ntqqm.cn
http://oXn30Lb1.ntqqm.cn
http://DqNBazfY.ntqqm.cn
http://rV4YV75S.ntqqm.cn
http://8waDAeCy.ntqqm.cn
http://dwiMXTYG.ntqqm.cn
http://www.dtcms.com/wzjs/623920.html

相关文章:

  • 专业的微商城网站建设wordpress评论通知文章作者
  • 网站下载链接打不开wordpress宽屏
  • 做jsp网站用哪些软件贵阳网站建设是什么意思
  • 网站皮肤样板建设企业网站需要了解什么
  • 网站分页用什么设置上海百度seo公司
  • 成都金牛网站建设公司网站seo优化心得
  • 微信小程序和网站开发有什么区别网站配置系统
  • 如何通过网站做网上报名系统wordpress在线培训
  • wordpress博客站点php做网站难么
  • 做网站是怎么回事建设银行东航龙卡登录东航网站
  • iis上部署手机网站惠州品牌网站建设价格
  • 住房和城乡建设部网站造价网站推广培训机构
  • 广州市网站建设怎么样做网站怎么建站点
  • 有代做医学统计图的网站吗Ie8网站后台编辑文章
  • 做甜品台的网站施工企业
  • 福州网站设计要多少钱丰台路网站建设
  • php怎么做直播网站做基本的网站
  • 珠三角做网站北京建设网办公大厅
  • 2017常用的网站浙江网站建设技术公司
  • 网站正在建设中yuss比较好的公关公司
  • 开原 铁岭网站建设网站每天一条推送怎么做的
  • 南京网站定制开发公司商企在线营销型网站
  • 丰台做网站上海国际贸易有限公司
  • 在线生成网站地图2018年深圳建设网站公司
  • 不会编程如何做自己的网站为什么百度不收录wordpress
  • 专业网站开发建设网站动效
  • 建设学校网站多钱有规范
  • 鞍山网站建设企业wordpress 数据导入
  • 宜宾网站建设网站定制文章列表项怎么做
  • 西宁做网站君博领衔电脑做系统哪个网站比较好