`
cleaneyes
  • 浏览: 342466 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

sql查询性能小测试

SQL 
阅读更多

测试环境为oracle10g

 

创建一个表

create table TEST_A
(
  ID   NUMBER(20),
  NAME VARCHAR2(20),
  CODE CHAR(20)
)

 

生成100W条数据,每个字段的值均为1到100W,进行如下性能测试。未创建索引之前的执行时间

select * from test_a t where id=219 --2.25s,1.7s
select * from test_a t where name='219' --2.391s ,1.7s
select * from test_a t where trim(code) = '219' --2.469s,2.172s

 均加上索引,后的执行时间

--behind add index
select * from test_a t where id=219 --0.016s
select * from test_a t where name='219' --0.016s
select * from test_a t where trim(code) = '219' --2.5s,2.172s
select * from test_a t where substr(code,0,3) = '219'--取出所有2.48s,前15条0.063s,0.03s
select * from test_a t where substr(code,0,6) = '100000'--2.297s,2.36s
 

初步说明NUMBER做主键类型与VARCHAR2的性能差别并不明显。(一般认为VARCHAR2的查询性能比CHAR和NUMBERS类型要差,后来测试使用VARCAHR(4000)数据达100W条时,性能也基本无差)

还说明在字段上使用函数,将查询使用不到索引,这点要特别注意! 通过查看执行计划,可以看使用的是全表扫描。

 

再测试一下count的性能。

select count(*) from test_a t --1.8s ,1.7s  --count(1)是一样的
select count(id) from test_a t --0.812s, 0.797s
select count(name) from test_a t --0.906s
select count(code) from test_a t --1.453s, 1.9s

 

没有过滤条件时, 对数据量大的表,少用count(*),尽量count主键索引的字段。

有过滤条件时,速度取决了过滤之后的记录数。两种写法性能基本无差异。

 

 

500W条数据的测试结果

select * from test_a t where id=219 --0.016s
select * from test_a t where name='219' --0.016s
select * from test_a t where code = rpad('100000',20,' ');--0.016s

select * from test_a t where trim(code) = '219' --33.3s
select * from test_a t where substr(code,0,3) = '219'--前15条0.125,0.047s
select count(code) from test_a t where substr(code,0,3) = '219'--12.8s
select * from test_a t where substr(code,0,6) = '100000'--11.579s

 

select count(*) from test_a --46s
select count(id) from test_a --5.28s,4.84s
select count(*) from test_a where id>1000 and id <10000--0.016s
select count(id) from test_a where id>1000 and id <10000 --0.016s

 

对大表进行查询分页时,最好先确定一个查询条件。否则结果集出来的速度会比较慢。因为分页先要计算总记录数。

 

 

 

 

 

分享到:
评论

相关推荐

    sql语句性能测试详解

    【SQL语句性能测试详解】 在软件开发中,SQL语句的性能是数据库管理系统的关键因素,因为它直接影响到应用程序的响应时间和资源消耗。本篇将详细阐述如何使用LoadRunner工具来测试SQL语句或存储过程的执行性能,...

    测试sql性能的实例

    SQL性能测试是确保数据库高效运行的关键步骤,它可以帮助我们优化查询、减少资源消耗并提高整体系统性能。下面,我们将深入探讨如何进行SQL性能测试,并提供一些实践实例。 一、SQL性能测试的重要性 1. 提升效率:...

    SQLServer性能测试

    SQL_Server2005性能测试实践

    SQL Server 2012性能基准测试

    在实际应用程序的性能测试中,SQL Server 2012展现了令人瞩目的成果。通过与客户、合作伙伴以及业界领先的标准相结合,该系统在多个领域取得了突破性的成绩。例如,与HP和XIO合作的Temenos T24 R12性能测试,显示了...

    T-SQL语句性能测试小工具

    T-SQL语句性能测试小工具 两个sql语句执行结果一样 想知道哪个效率更低速度更快吗? 来试试吧

    压测Oracle的SQL语句的性能情况

    文件名"Oracle_Sqltest"可能包含了各种用于测试的SQL语句,这些语句可能是常见的查询、插入、更新或删除操作,也可能包括复杂的联接、子查询和聚合函数,这些都是性能测试中的常见场景。 在进行Oracle SQL语句的...

    SQLserver性能检测和优化.docx

    SQL Server性能检测和优化是数据库管理系统中至关重要的环节,尤其当面临系统性能低下时,有效诊断和提升系统效能显得尤为关键。SQL Server Profiler作为一款内置的性能分析工具,能够帮助我们实时监控数据库和...

    SQL查询性能优化方法分析.pdf

    在测试中发现,合理的组合索引能够在第1和第3个SQL查询中显著提升查询速度,这说明在设计组合索引时,要综合考虑查询语句的结构,以便最大程度地利用索引优化查询性能。 此外,对于SQL查询性能优化的分析,还可以...

    oracle连接查询SQL性能测试

    标题“Oracle连接查询SQL性能测试”涉及的是数据库管理和优化领域,特别是针对Oracle数据库系统的SQL查询性能分析。在Oracle中,连接查询(JOINs)是整合多个表数据的关键操作,其性能直接影响到数据库的整体效率。...

    MySQL的SQL查询性能优化技术.pdf

    总的来说,MySQL SQL查询性能优化是一个涉及多方面的综合过程,包括但不限于合理配置、监控系统状态、理解业务需求以及持续跟踪和测试。通过运用这些技术和工具,我们可以显著提升MySQL数据库的性能,满足企业级应用...

    sql测试工具用于测试sql语句的性能

    1. **JMeter**: 虽然JMeter主要是一个用于Web应用的压力测试工具,但通过插件也可以扩展到SQL性能测试。它可以模拟多个用户并发执行SQL查询,分析响应时间和资源消耗。 2. **SQL Server Management Studio (SSMS)**...

    MSSQL性能监控SQL语句

    本文将深入探讨MSSQL性能监控中的几个关键SQL语句,帮助数据库管理员(DBA)和开发者更好地理解和管理MSSQL的性能。 ### 1. sys.dm_exec_query_stats:查询统计信息 `sys.dm_exec_query_stats`是MSSQL中一个非常...

    SQLServer 性能检测收集工具

    `sp_code_runner.SQL` 可能是一个自定义的脚本,用于运行一组预定义的性能测试或代码分析。而`sp_trace80.SQL` 可能是对SQL Server Profiler trace功能的扩展或替代,用于记录数据库的活动,例如查询、事务和异常,...

    SQL Server性能调优.pdf

    ### SQL Server性能调优知识点详解 #### 一、SQL Server性能调优概述 **SQL Server性能调优**是一项系统性的任务,旨在通过一系列的技术手段和最佳实践来提高Microsoft SQL Server数据库系统的运行效率和响应速度...

    SQL Server 性能监视与优化.pdf

    ### SQL Server 性能监视与优化 #### 一、性能监视和优化的重要性 在现代企业的IT基础设施中,数据库系统的性能直接影响着业务效率和服务质量。Microsoft SQL Server 作为一款广泛使用的数据库管理系统,在各种...

    sql性能分析工具效率分析

    在IT领域,SQL性能分析是数据库管理中的关键环节,它涉及到如何有效地运行SQL查询,以提高系统的整体性能。本文将详细探讨"SQL性能分析工具效率分析"这一主题,旨在帮助你理解和利用这些工具来优化你的项目和SQL功能...

    SQLServer 性能仪表盘(Performance Dashboard Reports)

    这些报告主要基于SQL Server Profiler和Dynamic Management Views (DMVs)的数据,使得用户无需深入复杂的查询或事件跟踪就能获取关键性能数据。 1. **CPU使用情况报告**:此报告显示SQL Server进程和整个服务器的...

    高性能SQL调优

    12. **性能测试与基准**:模拟真实业务场景进行性能测试,建立基准,以此为依据进行调优,确保改进措施有效。 在"高性能SQL调优code+书签"的描述中,可能包含实际的代码示例和一些关键的调优技巧,这些可以帮助深入...

Global site tag (gtag.js) - Google Analytics