数据库的性能优化是个非常复杂的事情,熟悉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;
欢迎加入 51软件测试大家庭,在这里你将获得【最新行业资讯】,【免费测试 工具 安装包】,【软件测试技术干货】,【面试求职技巧】... 51与你共同学习,一起成长!期待你的加入: QQ 群: 755431660
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 优化SQL查询:如何写出高性能SQL语句
- 实用排坑帖:SQL语句性能优化操作策略大全
- MySQL Insert语句单个批次数量过多导致的CPU性能问题分析
- 同一个SQL语句,为啥性能差异咋就这么大呢?(1分钟系列)
- 大牛们是如何写出那些高质量、高性能的SQL查询语句的?
- MySQL 建表语句转 PostgreSQL 建表语句全纪录
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。