我正在下面的oracle数据库中运行查询。
New-Item : An item with the specified name C:\Users\bhabib\test already exists.
At C:\Users\bhabib\source\repos\TSS---New-Starter-automation-master\folder creation.ps1:6 char:9
+ New-Item -Path $folder -Type Directory
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ResourceExists: (C:\Users\bhabib\test:String) [New-Item], IOException
+ FullyQualifiedErrorId : DirectoryExist,Microsoft.PowerShell.Commands.NewItemCommand
我只想问一下此查询返回的结果是否包含仍在运行的sql或用户超时或取消的查询?
答案 0 :(得分:2)
是的,V$SQL
显示有关仍在运行的查询的信息。来自Oracle's documentation:
V$SQL
列出不具有GROUP BY子句的共享SQL区域的统计信息 并为输入的原始SQL文本的每个子项包含一行。V$SQL
中显示的统计信息通常在查询结束时进行更新 执行。但是,对于长时间运行的查询,它们每5个更新一次 秒。这使得很容易看到长时间运行的SQL的影响 声明仍在进行中。
对于问题的第二部分,答案是:取决于。查询在缓存中停留的时间长度(V$SQL
在其中收集信息)取决于缓存的大小以及在任何给定时间运行的唯一/不同查询的数量。如果在数据库中经常运行相同类型的查询(即,将它们缓存),则旧查询在V$SQL
视图中的保留时间将比在数据库中执行许多不同查询的时间更长(假设尚未存储在缓存中的不同查询将添加到缓存库中,从而将较早/超时的查询从缓存中推出。如果要配置查询在缓存中花费的时间,则必须配置共享池的大小。我建议阅读https://docs.oracle.com/database/121/TGDBA/tune_shared_pool.htm#TGDBA560