dbms_xplan.display_awr方式获取执行计划的实验和之前的误导
《查看Oracle执行计划的几种常用方法-系列1》(http://blog.csdn.net/bisal/article/details/38919181)这篇博文中曾提到一个隐藏问题: “ 隐藏问题2: 实验这部分内容发现使用select * from table(dbms_xplan.display_awr('sql_id'));并没有结果,@黄玮老师
《查看Oracle执行计划的几种常用方法-系列1》(http://blog.csdn.net/bisal/article/details/38919181)这篇博文中曾提到一个隐藏问题:
“隐藏问题2:
实验这部分内容发现使用select * from table(dbms_xplan.display_awr('sql_id'));并没有结果,@黄玮老师说有可能是AWR收集的是top的SQL,有可能测试用的SQL不是most intensive SQL,但我是用alter system flush shared_pool后执行的手工采集快照,还是未被AWR抓到,比较奇怪的问题,这个也会在另一篇博文中仔细说明。”
背景是:
“select
* from table(dbms_xplan.display_awr('sql_id'));
(1)是使用explain plan for +SQL作为前提,(2)和(3)的前提则是SQL的执行计划还在共享池中,具体讲是在库缓存中。如果已经被age out交换出共享池,则不能用这两种方法了。若该SQL的执行计划被采集到AWR库中,则可以用(4)上述SQL来查询历史执行计划。”
即使用这条SQL可以查看AWR库中保存的执行计划。但我尝试用dual表做实验,发现并没有被AWR库保存他的执行计划(http://www.itpub.net/forum.php?mod=viewthread&tid=1886046&extra=)。
实验:
1. 创建测试表:

2. 查询Shared Pool中是否已经缓存了select count(*) from awr_tbl的执行计划:
3.
喎?http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vc3Ryb25nPjxzdHJvbmc+yta5pMrVvK9BV1KxqLjmo6zH5b/VU2hhcmVkPC9zdHJvbmc+PHN0cm9uZz4gUDwvc3Ryb25nPjxzdHJvbmc+b29su7qz5bPYPC9zdHJvbmc+o7o8L3A+CjxwPjxpbWcgc3JjPQ=="http://www.2cto.com/uploadfile/Collfiles/20141029/201410290914225.png" alt="\">
看到缓冲区被清空了,刚才可以从v$sqlarea中查询的SQL信息已经删除了。
4. 使用上面提到的“select * from table(dbms_xplan.display_awr("sql_id'));”看看AWR中保存的SQL信息:
对于@dbsnake说的dbms_xplan.display_awr("sql_id')和dbms_xplan.display_cursor的区别是不能显示谓词信息,是因为从V$SQL_PLAN导入AWR基表WRH$_SQL_PLAN时未将谓词字段access_predicates和filter_predicates导入,也做了一个实验:
select count(*) from sys_awr where object_name="SYS_AWR';语句,在V$SQL_PLAN中存在谓词信息:“OBJECT_NAME=”='SYS_AWR',但从WRH$_SQL_PLAN中看这两个字段是空的:
总结:
(1) select * from table(dbms_xplan.display);
(2) select * from table(dbms_xplan.display_cursor(null, null, "advanced'));
(3) select * from table(dbms_xplan.display_cursor('sql_id/hash_value', child_cursor_number, 'advanced'));
(4) select * from table(dbms_xplan.display_awr('sql_id'));
以上是使用dbms包查看执行计划的四种方法,其中:
(1)需要配合explain plan使用。
(2)、(3)需要SQL仍在Shared Pool中。
(4)需要AWR库保存该SQL信息。另外,不会显示谓词信息。
针对不同的场景选择不同的读取执行计划的方法即可。
实验过程中我曾用select * from dual作为测试SQL,但未得到如上结果,经@黄玮大师点播,认为可能是对于DUAL表的操作Oracle内部不是像正常表检索的方式来执行的,有机会可以探究。(http://www.itpub.net/forum.php?mod=viewthread&tid=1886046&extra=)

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds



Une extension de fichier en Python est un suffixe ajouté à la fin d'un nom de fichier pour indiquer le format ou le type du fichier. Il se compose généralement de trois ou quatre caractères, d'un nom de fichier suivi d'un point, tel que « .txt » ou « .py ». Les systèmes d'exploitation et les programmes utilisent des extensions de fichier pour déterminer de quel type de fichier il s'agit et comment il doit être traité. Reconnu comme un fichier texte brut. Les extensions de fichiers en Python sont cruciales lors de la lecture ou de l'écriture de fichiers, car elles établissent le format de fichier et la meilleure façon de lire et d'écrire des données. Par exemple, l'extension de fichier « .csv » est l'extension utilisée lors de la lecture des fichiers CSV, et le module csv est utilisé pour traiter les fichiers. Algorithme pour obtenir une extension de fichier en Python. Manipuler la chaîne du nom de fichier en Python.

Utilisez la fonction math.Max pour obtenir la valeur maximale dans un ensemble de nombres. En mathématiques et en programmation, il est souvent nécessaire de trouver la valeur maximale dans un ensemble de nombres. En langage Go, nous pouvons utiliser la fonction Max du package mathématique pour réaliser cette fonction. Cet article explique comment utiliser la fonction math.Max pour obtenir la valeur maximale dans un ensemble de nombres et fournit des exemples de code correspondants. Tout d’abord, nous devons importer le package mathématique. Dans le langage Go, vous pouvez utiliser le mot-clé import pour importer un package, comme indiqué ci-dessous : import"mat

Google Authenticator est un outil utilisé pour protéger la sécurité des comptes d'utilisateurs, et sa clé est constituée d'informations importantes utilisées pour générer des codes de vérification dynamiques. Si vous oubliez la clé de Google Authenticator et ne pouvez la vérifier que via le code de sécurité, l'éditeur de ce site Web vous proposera une introduction détaillée sur l'endroit où obtenir le code de sécurité Google. J'espère que cela pourra vous aider si vous le souhaitez. en savoir plus Utilisateurs, veuillez continuer à lire ci-dessous ! Ouvrez d’abord les paramètres du téléphone et accédez à la page des paramètres. Faites défiler la page et trouvez Google. Accédez à la page Google et cliquez sur Compte Google. Accédez à la page du compte et cliquez sur Afficher sous le code de vérification. Entrez votre mot de passe ou utilisez votre empreinte digitale pour vérifier votre identité. Obtenez un code de sécurité Google et utilisez le code de sécurité pour vérifier votre identité Google.

Récupérer le dernier élément d'un LinkedHashSet en Java signifie récupérer le dernier élément de sa collection. Bien que Java n'ait pas de méthode intégrée pour aider à récupérer le dernier élément dans LinkedHashSets, il existe plusieurs techniques efficaces qui offrent flexibilité et commodité pour récupérer efficacement ce dernier élément sans rompre l'ordre d'insertion - un must pour les problèmes des développeurs Java résolus efficacement dans son application. . En appliquant efficacement ces stratégies dans leurs projets logiciels, ils peuvent obtenir la meilleure solution pour cette exigence. LinkedHashSetLinkedHashSet est une structure de données efficace en Java qui combine HashSet et

Bien que le fonctionnement général des téléphones mobiles nationaux soit très similaire, il existe encore des différences dans certains détails. Par exemple, différents modèles de téléphones mobiles et fabricants peuvent avoir des méthodes d'installation double SIM différentes. Erzhenwo 12Pro, un nouveau téléphone mobile, prend également en charge la double veille double SIM, mais comment installer la double SIM sur ce téléphone ? Comment installer la double SIM sur Realme 12Pro ? N'oubliez pas d'éteindre votre téléphone avant l'installation. Étape 1 : Recherchez le plateau de la carte SIM : Recherchez le plateau de la carte SIM du téléphone Habituellement, dans le Realme 12 Pro, le plateau de la carte SIM est situé sur le côté ou sur le dessus du téléphone. Étape 2 : Insérez la première carte SIM. Utilisez une broche de carte SIM dédiée ou un petit objet pour l'insérer dans la fente du plateau de la carte SIM. Ensuite, insérez soigneusement la première carte SIM.

La taille d'un fichier est la quantité d'espace de stockage qu'un fichier spécifique occupe sur un périphérique de stockage spécifique, tel qu'un disque dur. La taille d'un fichier est mesurée en octets. Dans cette section, nous verrons comment implémenter un programme Java pour obtenir la taille d'un fichier donné en octets, kilo-octets et mégaoctets. Un octet est la plus petite unité d'information numérique. Un octet équivaut à huit bits. Un kilo-octet (Ko) = 1 024 octets, un mégaoctet (Mo) = 1 024 Ko, un gigaoctet (Go) = 1 024 Mo et un téraoctet (To) = 1 024 Go. La taille d'un fichier dépend généralement du type de fichier et de la quantité de données qu'il contient. En prenant un document texte comme exemple, la taille du fichier peut n'être que de quelques kilo-octets, tandis qu'un fichier image ou vidéo haute résolution peut être

Tutoriel JavaScript : Comment obtenir le code d'état HTTP, des exemples de code spécifiques sont requis Préface : Dans le développement Web, l'interaction des données avec le serveur est souvent impliquée. Lors de la communication avec le serveur, nous devons souvent obtenir le code d'état HTTP renvoyé pour déterminer si l'opération a réussi et effectuer le traitement correspondant en fonction de différents codes d'état. Cet article vous apprendra comment utiliser JavaScript pour obtenir des codes d'état HTTP et fournira quelques exemples de codes pratiques. Utilisation de XMLHttpRequest

Si l'option « Obtenir les dernières mises à jour dès qu'elles sont disponibles » est manquante ou grisée, vous exécutez peut-être une version Developer Channel Windows 11, et c'est normal. Pour d'autres, des problèmes surviennent après l'installation de la mise à jour KB5026446 (22621.1778). Voici ce que vous pouvez faire pour récupérer l'option « Obtenir les dernières mises à jour dès qu'elles sont disponibles ». Comment puis-je récupérer l'option « Obtenir les dernières mises à jour dès qu'elles sont disponibles » ? Avant de démarrer l'une des solutions ci-dessous, assurez-vous de rechercher les dernières mises à jour de Windows 11 et de les installer. 1. Utilisez ViVeTool pour accéder à la page Catalogue Microsoft Update et recherchez la mise à jour KB5026446. Téléchargez et réinstallez la mise à jour sur votre PC
