ITPub博客

性能测试常用Oracle语句,这10个果断收藏了!

原创 大规模网络运维 作者:博为峰网校 时间:2018-11-08 21:53:42 0 删除 编辑

数据库的性能优化是个非常复杂的事情,熟悉Oracle的专家能手更是数不胜数,所以 虽说我已经入行软件测试 5年之久,但也没敢写过 Oracle。

直到最近, 我认识了一位资深 Oracle大师 ,我 竟然发现大师有几个地方 说错 了,主要是在理论联系实际的问题分析、 AWR报告解读方面,提问之后竟然把大师挂在了台上。后来想想,大师也有不懂的,我怕什么呢,写! 下面我就和大家分享下, 从性能测试的角度看 Oracle。

oracle的性能测试主要是模拟大量的sql语句操作,来对数据库服务器进行加压。在测试前,需要准备以下要模拟的sql语句,测试脚本,并将测试控制机、测试加压机、被测数据库服务器准备妥当。

Oracle数据库性能优缺点
优点
1、 能在所有主流平台上运行(包括 windows)。完全支持所有的工业标准。采用完全开放策略。可以使客户选择最适合的解决方案。对开发商全力支持。
2、 平行服务器通过使一组结点共享同一簇中的工作来扩展 windownt的能力,提供高可用性和高伸缩性的簇的解决方案。 
3、 如果 windowsNT不能满足需要, 用户可以把数据库移到UNIX中。
4、 安全性方面,性能最高。
5、 客户端支持及应用模式 ,多层次网络计算,支持多种工业标准,可以用 ODBC,JDBC,OCI等网络客户连接式要求,可根据实际系统需求构造数据库。
6、 采用标准的 SQL结构化查询语言。
7、 具有丰富的开发工具,覆盖开发周期的各阶段。
8、 支持大型数据库,数据类型支持数字、字符、大至 2GB的二进制数据,为数据库的面向对象存储提供数据支持。
9、 具有第四代语言的开发工具( SQL*FORMS、SQL*REPORTS、SQL*MENU等)。
10、 具有字符界面和图形界面,易于开发。
11、 通过 SQL*DBA控制用户权限,提供数据保护功能,监控数据库的运行状态,调整数据缓冲区的大小。
12、 分布优化查询功能。
13、 具有数据透明、网络透明,支持异种网络、异构数据库系统。并行处理采用动态数据分片技术。
14、 支持客户机 /服务器体系结构及混合的体系结构(集中式、分布式、客户机/服务器)。
15、 实现了两阶段提交、多线索查询手段。
16、 数据安全保护措施:没有读锁,采取快照 SNAP方式完全消除了分布读写冲突。自动检测死锁和冲突并解决。
17、 数据安全级别为 C2级(最高级)。

18、 数据库内模支持多字节码制,支持多种语言文字编码。
19、 具有面向制造系统的管理信息系统和财务系统应用系统。
20、 WORKGROUP/2000具有ORACLE7WORKGROUP服务器,POWER OBJECTS(图形开发环境,支持OS/2、UNIX、WINDOWS/NT平台。
21、 在中国的销售份额占 50%以上。 
缺点
1、 管理维护麻烦一些;
2、 数据库崩溃后回复很麻烦,因为他把很多东西放在内存里;
3、 数据库连接要慢些,最好用连接池;
4、 大对象不好用, vchar2字段太短,不够用;
5、 管理员的工作烦,且经验非常重要;
6、 对硬件的要求很高;

性能测试常用 Oracle语句

显示数据库当前的连接数:

selectcount(*) from v$process;

显示数据库最大连接数:

selectvalue from v$parameter where name ='processes' 

修改最大 Oracle最大连接数:

alter systemset processes = 300 scope = spfile;

显示当前的 session连接数:

selectcount(*) fromv$session

查看当前有哪些用户正在使用数据:

SELECT osuser,a.username,cpu_time/executions/1000000||'s', sql_fulltext,machine fromv$session a, v$sqlarea b where a.sql_address =b.address order by cpu_time/executionsdesc;

查看数据库中 SGA:

System globalarea (SGA),system global area(PGA);

查看连接 oracle的所有机器的连接数:

selectmachine,count(*) fromv$session groupbymachine;

查看连接 oracle的所有机器的连接数和状态:

selectmachine,status,count(*) fromv$session groupbymachine,status orderbystatus;

Oracle 11g设置内存自动管理:

 

查看消耗磁盘读取最多的 SQL Top 5:

selectdisk_reads,sql_text,SQL_FULLTEXT

from (selectsql_text,disk_reads,SQL_FULLTEXT,

  dense_rank() over

    (order by disk_reads desc) disk_reads_rank

  from v$sql)

wheredisk_reads_rank <=5;

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31407649/viewspace-2219304/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2016-11-02

  • 博文量
    75
  • 访问量
    24617