45

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

 5 years ago
source link: http://www.cnitblog.com/shbwf/archive/2018/11/08/91206.html?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

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

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

BZjIzev.jpg!web

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设置内存自动管理:

yMbEFvu.png!web ​ 

查看消耗磁盘读取最多的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;

欢迎加入  51软件测试大家庭,在这里你将获得【最新行业资讯】,【免费测试工具安装包】,【软件测试技术干货】,【面试求职技巧】... 51与你共同学习,一起成长!期待你的加入: QQ                      群:                     755431660


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK