Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何使用Oracle数据库获取查询执行统计信息?_Sql Server_Oracle_Sql Execution Plan - Fatal编程技术网

Sql server 如何使用Oracle数据库获取查询执行统计信息?

Sql server 如何使用Oracle数据库获取查询执行统计信息?,sql-server,oracle,sql-execution-plan,Sql Server,Oracle,Sql Execution Plan,我不熟悉数据库。我尝试在SQL Server 2014和Oracle 12c上运行一个简单的查询 这是我使用SQL Server得到的执行计划。它包含有关以秒为单位的I/O成本和CPU成本的信息 但是,我无法使用Oracle找到相同的信息。执行计划中显示的CPU成本不基于执行时间。 我想对这两个数据库做一些比较。如何在Oracle中获得与SQL Server相同的信息?此外,我如何知道缓存命中率 谢谢。使用获取查询及其操作的估计值和实际值。定期的解释计划是有帮助的,但它们只是告诉你Oracl

我不熟悉数据库。我尝试在SQL Server 2014和Oracle 12c上运行一个简单的查询

这是我使用SQL Server得到的执行计划。它包含有关以秒为单位的I/O成本和CPU成本的信息

但是,我无法使用Oracle找到相同的信息。执行计划中显示的CPU成本不基于执行时间。

我想对这两个数据库做一些比较。如何在Oracle中获得与SQL Server相同的信息?此外,我如何知道缓存命中率

谢谢。

使用获取查询及其操作的估计值和实际值。定期的解释计划是有帮助的,但它们只是告诉你Oracle认为会发生什么,而不一定会发生什么


具体地说,使用(聚合)或SQL监视器详细信息(上次执行)信息。

您很接近,非常接近

用自动竞速跑


我会详细介绍这个功能,当然你也可以阅读文档或帮助

成本估算实际上是基于时间的

它是一种无量纲化的度量,表示查询完成的估计时间(逻辑读取的等效数量),因此,如果逻辑读取预计需要0.001秒,则12秒的成本为0.012秒

虽然通常都说不同查询之间的成本是无法比较的,但这在早期版本中才是确定的。比较查询成本的困难与单块和多块读取、写入和CPU操作所需的时间有关。这可能取决于多种因素(系统上的其他活动,以及影响实例或i/o子系统缓存块的可能性的前一个活动),因此您不太可能真正期望从成本中获得时间

缓存命中率作为衡量系统效率的指标已经有相当一段时间不可信了。只需运行特定类型的效率极低的查询,就可以将缓存命中率提高到任意值。

在询问之前尝试搜索。