sql – 我的查询运行速度更快,第二次,我该如何阻止?
发布时间:2020-05-23 07:02:22 所属栏目:MsSql 来源:互联网
导读:我在oracle中运行查询10从B中选择A,其中C = D B有数百万条记录,C上没有索引 我第一次运行它需要大约30秒,第二次运行查询大约需要1秒钟. 显然,它是缓存的东西,我希望它停止,每次我运行的查询,我想要30年 – 就像它是第一次运行. 我过度简化了我为了使问题可读
|
我在oracle中运行查询10从B中选择A,其中C = D
我第一次运行它需要大约30秒,第二次运行查询大约需要1秒钟. 显然,它是缓存的东西,我希望它停止,每次我运行的查询,我想要30年 – 就像它是第一次运行. >我过度简化了我为了使问题可读而产生的问题. 谢谢 解决方法清除缓存以测量性能是可能的,但是非常难以实现.跟踪调查工作性能的一个很好的措施是在查询执行期间计数读取块的数量.最简单的方法之一是使用sqlplus与autotrace,像这样: set autotrace traceonly <your query> 输出 ...
Statistics
----------------------------------------------------------
0 recursive calls
0 db block gets
1 consistent gets
0 physical reads
0 redo size
363 bytes sent via SQL*Net to client
364 bytes received via SQL*Net from client
4 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed
从缓存或从磁盘读取的块数量是一致的. 另一种方式是使用增加的统计信息运行查询,即使用提示collect_plan_statistics,然后从光标缓存查看查询计划: auto autotrace off set serveroutput off <your query with hint gather_plan_statistics> select * from table(dbms_xplan.display_cursor(null,null,'typical allstats')); 读取的块数在列缓冲区中输出. --------------------------------------------------------------------------------------------------------------------- | Id | Operation | Name | Starts | E-Rows | Cost (%CPU)| E-Time | A-Rows | A-Time | Buffers | --------------------------------------------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 3 | | 1 (100)| | 3 |00:00:00.01 | 3 | | 1 | SORT AGGREGATE | | 3 | 1 | | | 3 |00:00:00.01 | 3 | | 2 | INDEX FULL SCAN| ABCDEF | 3 | 176 | 1 (0)| 00:00:01 | 528 |00:00:00.01 | 3 | --------------------------------------------------------------------------------------------------------------------- (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- sql-server – [ADO.NET错误]:数据库’master’中的CREATE
- 测试 – 在等待构建/测试/数据库迁移运行时,我该怎么办?
- C#获取所有SQL Server数据库名称的方法
- sql – 从使用(WHERE)条件选择的行中获取上一行和下一行
- sql-server – 可以根据多个列删除数据库副本吗?
- sql-server – 对于超过250条记录的批量插入,检查约束不起作
- SQL Server 中ntext字段的批量替换(updatetext的用法)
- SQL转置完整表
- sql-server-2008 – T-SQL删除所有非alpha和非数字字符
- neo4j或图形数据库存在哪些时间模式?
