Maison base de données tutoriel mysql SQL 语句优化方法30例_MySQL

SQL 语句优化方法30例_MySQL

Jun 01, 2016 pm 01:19 PM
吞吐量 资源

bitsCN.com 1. /*+ALL_ROWS*/
表明对语句块选择基于开销的优化方法,并获得最佳吞吐量,使资源消耗最小化.
例如:
SELECT /*+ALL+_ROWS*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='SCOTT';
2. /*+FIRST_ROWS*/
表明对语句块选择基于开销的优化方法,并获得最佳响应时间,使资源消耗最小化.
例如:
SELECT /*+FIRST_ROWS*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='SCOTT';

3. /*+CHOOSE*/
表明如果数据字典中有访问表的统计信息,将基于开销的优化方法,并获得最佳的吞吐量;
表明如果数据字典中没有访问表的统计信息,将基于规则开销的优化方法;
例如:
SELECT /*+CHOOSE*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='SCOTT';

4. /*+RULE*/
表明对语句块选择基于规则的优化方法.
例如:
SELECT /*+ RULE */ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='SCOTT';

5. /*+FULL(TABLE)*/
表明对表选择全局扫描的方法.
例如:
SELECT /*+FULL(A)*/ EMP_NO,EMP_NAM FROM BSEMPMS A WHERE EMP_NO='SCOTT';

6. /*+ROWID(TABLE)*/
提示明确表明对指定表根据ROWID进行访问.
例如:
SELECT /*+ROWID(BSEMPMS)*/ * FROM BSEMPMS WHERE ROWID>='AAAAAAAAAAAAAA'
AND EMP_NO='SCOTT';

7. /*+CLUSTER(TABLE)*/
提示明确表明对指定表选择簇扫描的访问方法,它只对簇对象有效.
例如:
SELECT /*+CLUSTER */ BSEMPMS.EMP_NO,DPT_NO FROM BSEMPMS,BSDPTMS
WHERE DPT_NO='TEC304' AND BSEMPMS.DPT_NO=BSDPTMS.DPT_NO;

8. /*+INDEX(TABLE INDEX_NAME)*/
表明对表选择索引的扫描方法.
例如:
SELECT /*+INDEX(BSEMPMS SEX_INDEX) USE SEX_INDEX BECAUSE THERE ARE FEWMALE BSEMPMS */ FROM BSEMPMS WHERE SEX='M';

9. /*+INDEX_ASC(TABLE INDEX_NAME)*/
表明对表选择索引升序的扫描方法.
例如:
SELECT /*+INDEX_ASC(BSEMPMS PK_BSEMPMS) */ FROM BSEMPMS WHERE DPT_NO='SCOTT';

10. /*+INDEX_COMBINE*/
为指定表选择位图访问路经,如果INDEX_COMBINE中没有提供作为参数的索引,将选择出位图索引的布尔组合方式.
例如:
SELECT /*+INDEX_COMBINE(BSEMPMS SAL_BMI HIREDATE_BMI)*/ * FROM BSEMPMS
WHERE SAL
11. /*+INDEX_JOIN(TABLE INDEX_NAME)*/
提示明确命令优化器使用索引作为访问路径.
例如:
SELECT /*+INDEX_JOIN(BSEMPMS SAL_HMI HIREDATE_BMI)*/ SAL,HIREDATE
FROM BSEMPMS WHERE SAL
12. /*+INDEX_DESC(TABLE INDEX_NAME)*/
表明对表选择索引降序的扫描方法.
例如:
SELECT /*+INDEX_DESC(BSEMPMS PK_BSEMPMS) */ FROM BSEMPMS WHERE DPT_NO='SCOTT';

13. /*+INDEX_FFS(TABLE INDEX_NAME)*/
对指定的表执行快速全索引扫描,而不是全表扫描的办法.
例如:
SELECT /*+INDEX_FFS(BSEMPMS IN_EMPNAM)*/ * FROM BSEMPMS WHERE DPT_NO='TEC305';

14. /*+ADD_EQUAL TABLE INDEX_NAM1,INDEX_NAM2,...*/
提示明确进行执行规划的选择,将几个单列索引的扫描合起来.
例如:
SELECT /*+INDEX_FFS(BSEMPMS IN_DPTNO,IN_EMPNO,IN_SEX)*/ * FROM BSEMPMS WHERE EMP_NO='SCOTT' AND DPT_NO='TDC306';

15. /*+USE_CONCAT*/
对查询中的WHERE后面的OR条件进行转换为UNION ALL的组合查询.
例如:
SELECT /*+USE_CONCAT*/ * FROM BSEMPMS WHERE DPT_NO='TDC506' AND SEX='M';

16. /*+NO_EXPAND*/
对于WHERE后面的OR 或者IN-LIST的查询语句,NO_EXPAND将阻止其基于优化器对其进行扩展.
例如:
SELECT /*+NO_EXPAND*/ * FROM BSEMPMS WHERE DPT_NO='TDC506' AND SEX='M';

17. /*+NOWRITE*/
禁止对查询块的查询重写操作.

18. /*+REWRITE*/
可以将视图作为参数.

19. /*+MERGE(TABLE)*/
能够对视图的各个查询进行相应的合并.
例如:
SELECT /*+MERGE(V) */ A.EMP_NO,A.EMP_NAM,B.DPT_NO FROM BSEMPMS A (SELET DPT_NO
,AVG(SAL) AS AVG_SAL FROM BSEMPMS B GROUP BY DPT_NO) V WHERE A.DPT_NO=V.DPT_NO
AND A.SAL>V.AVG_SAL;

20. /*+NO_MERGE(TABLE)*/
对于有可合并的视图不再合并.
例如:
SELECT /*+NO_MERGE(V) */ A.EMP_NO,A.EMP_NAM,B.DPT_NO FROM BSEMPMS A (SELECT DPT_NO,AVG(SAL) AS AVG_SAL FROM BSEMPMS B GROUP BY DPT_NO) V WHERE A.DPT_NO=V.DPT_NO AND A.SAL>V.AVG_SAL;

21. /*+ORDERED*/
根据表出现在FROM中的顺序,ORDERED使ORACLE依此顺序对其连接.
例如:
SELECT /*+ORDERED*/ A.COL1,B.COL2,C.COL3 FROM TABLE1 A,TABLE2 B,TABLE3 C WHERE A.COL1=B.COL1 AND B.COL1=C.COL1;

22. /*+USE_NL(TABLE)*/
将指定表与嵌套的连接的行源进行连接,并把指定表作为内部表.
例如:
SELECT /*+ORDERED USE_NL(BSEMPMS)*/ BSDPTMS.DPT_NO,BSEMPMS.EMP_NO,BSEMPMS.EMP_NAM FROM BSEMPMS,BSDPTMS WHERE BSEMPMS.DPT_NO=BSDPTMS.DPT_NO;

23. /*+USE_MERGE(TABLE)*/
将指定的表与其他行源通过合并排序连接方式连接起来.
例如:
SELECT /*+USE_MERGE(BSEMPMS,BSDPTMS)*/ * FROM BSEMPMS,BSDPTMS WHERE BSEMPMS.DPT_NO=BSDPTMS.DPT_NO;

24. /*+USE_HASH(TABLE)*/
将指定的表与其他行源通过哈希连接方式连接起来.
例如:
SELECT /*+USE_HASH(BSEMPMS,BSDPTMS)*/ * FROM BSEMPMS,BSDPTMS WHERE BSEMPMS.DPT_NO=BSDPTMS.DPT_NO;

25. /*+DRIVING_SITE(TABLE)*/
强制与ORACLE所选择的位置不同的表进行查询执行.
例如:
SELECT /*+DRIVING_SITE(DEPT)*/ * FROM BSEMPMS,DEPT@BSDPTMS WHERE BSEMPMS.DPT_NO=DEPT.DPT_NO;

26. /*+LEADING(TABLE)*/
将指定的表作为连接次序中的首表.

27. /*+CACHE(TABLE)*/
当进行全表扫描时,CACHE提示能够将表的检索块放置在缓冲区缓存中最近最少列表LRU的最近使用端
例如:
SELECT /*+FULL(BSEMPMS) CAHE(BSEMPMS) */ EMP_NAM FROM BSEMPMS;

28. /*+NOCACHE(TABLE)*/
当进行全表扫描时,CACHE提示能够将表的检索块放置在缓冲区缓存中最近最少列表LRU的最近使用端
例如:
SELECT /*+FULL(BSEMPMS) NOCAHE(BSEMPMS) */ EMP_NAM FROM BSEMPMS;

29. /*+APPEND*/
直接插入到表的最后,可以提高速度.
insert /*+append*/ into test1 select * from test4 ;

30. /*+NOAPPEND*/
通过在插入语句生存期内停止并行模式来启动常规插入.
insert /*+noappend*/ into test1 select * from test4 ;bitsCN.com

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

Repo: Comment relancer ses coéquipiers
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
4 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Comment trouver des ressources sur 115 disques réseau Comment trouver des ressources sur 115 disques réseau Feb 23, 2024 pm 05:10 PM

Il y aura beaucoup de ressources sur le disque réseau 115, alors comment trouver des ressources ? Les utilisateurs peuvent rechercher les ressources dont ils ont besoin dans le logiciel, puis accéder à l'interface de téléchargement, puis choisir de les enregistrer sur le disque réseau. Cette introduction à la méthode de recherche de ressources sur 115 disques réseau peut vous indiquer le contenu spécifique. Ce qui suit est une introduction détaillée, venez y jeter un œil. Comment trouver des ressources sur le disque réseau 115 ? Réponse : Recherchez le contenu dans le logiciel, puis cliquez pour enregistrer sur le disque réseau. Introduction détaillée : 1. Entrez d'abord les ressources souhaitées dans l'application. 2. Cliquez ensuite sur le lien mot-clé qui apparaît. 3. Entrez ensuite dans l'interface de téléchargement. 4. Cliquez sur Enregistrer sur le disque réseau à l'intérieur.

Le plantage d'Explorer.exe en mode sans échec de Windows 11 ne se produit plus Le plantage d'Explorer.exe en mode sans échec de Windows 11 ne se produit plus Aug 30, 2023 pm 11:09 PM

Explorer.exe plante en mode sans échec sous Windows 11 ? Pas plus. Microsoft vient de publier un nouveau correctif sur Dev Channel, et bien qu'il n'y ait aucune nouvelle fonctionnalité dans cette version, de nombreux correctifs et améliorations font leur chemin dans le programme Windows Insider, y compris un bug ennuyeux où Explorer.exe plante en mode sans échec. Eh bien, vous pouvez lui dire au revoir maintenant, au moins dans le programme Windows Insider. Mais comme pour toutes ces mises à jour, elles arriveront également sur les serveurs Windows live. Correction d'un problème qui empêchait Explorer.exe de fonctionner en mode sans échec. Cependant, quelques autres correctifs sont à venir pour l'Explorateur de fichiers, Microsoft souhaite donc le faire fonctionner.

Pourquoi Han Xiaoquan n'avait-il soudainement plus de ressources ? Pourquoi Han Xiaoquan n'avait-il soudainement plus de ressources ? Feb 24, 2024 pm 03:22 PM

Han Xiaoquan est un logiciel qui peut regarder de nombreux drames coréens, alors pourquoi n'y a-t-il soudainement aucune ressource ? Ce logiciel peut ne pas disposer de ressources en raison de problèmes de réseau, de problèmes de version ou de problèmes de droits d'auteur. Cet article sur la raison pour laquelle Han Xiaoquan n'a soudainement plus de ressources peut vous indiquer le contenu spécifique. Ce qui suit est une introduction détaillée, venez y jeter un œil. Pourquoi Han Xiaoquan n'a-t-il soudainement plus eu de ressources ? Réponse : En raison de problèmes de réseau, de problèmes de version et de problèmes de droits d'auteur, introduction détaillée : 1. Solution aux problèmes de réseau : vous pouvez choisir un autre réseau, puis vous reconnecter au logiciel pour essayer. . 2. Solution aux problèmes de version : les utilisateurs peuvent télécharger la dernière version de ce logiciel sur le site officiel. 3. Solutions aux problèmes de droits d'auteur : certains drames coréens sont retirés des étagères en raison de problèmes de droits d'auteur. Vous pouvez choisir d'autres drames coréens à regarder.

Comment actualiser les ressources de Dying Light à l'infini Comment actualiser les ressources de Dying Light à l'infini Jan 24, 2024 pm 04:03 PM

Dans le jeu Dying Light, de nombreux joueurs peuvent être entourés d'innombrables zombies au début en raison du manque de ressources. Parfois, ils prendront également des risques pour sauver les vagabonds piégés, et ces vagabonds pourront également fournir des tâches secondaires, qui seront richement récompensées une fois accomplies. Dying Light Unlimited Resource Acquisition Tout d’abord, trouvez un colis de secours et placez-le dans l’entrepôt. Sur la page d'accueil de [Inventaire], sélectionnez un article avec une plus grande quantité et cliquez avec le bouton gauche de la souris lorsqu'il est sélectionné. 2. Ensuite, appuyez sur [ESC] sans déplacer la souris. Appuyez rapidement sur F+A. Après environ 0,25 seconde, lorsque vous sentez que la page de l'entrepôt est sur le point d'apparaître, appuyez sur les boutons gauche et droit de la souris. . Ne ​​déplacez pas la souris et n'appuyez pas et ne maintenez pas la pression. L'invite pour stocker les éléments apparaîtra et l'opération réussira. 3Enfin, trouvez le [Colis Catastrophe] dans l'entrepôt et soyez invité par

Go langage développement d'interface graphique : explorez les outils et ressources existants Go langage développement d'interface graphique : explorez les outils et ressources existants Mar 23, 2024 pm 03:06 PM

Principe directeur : Le langage Go lui-même ne prend pas directement en charge le développement d'interface graphique, mais le développement d'interface graphique peut être réalisé en appelant des bibliothèques dans d'autres langages ou en utilisant des outils existants. Cet article présentera certains outils et ressources couramment utilisés pour aider les lecteurs à mieux explorer la possibilité d'utiliser le langage Go pour le développement d'interfaces graphiques. 1. État actuel du développement de l'interface graphique du langage Go Le langage Go est un langage de programmation efficace et concis qui convient à divers domaines d'application, mais il n'est pas bon pour le développement d'interfaces graphiques. En raison des performances et des fonctionnalités de concurrence du langage Go, de nombreux développeurs souhaitent

Améliorer le débit du moteur de stockage : cas d'application MaxScale dans MySQL Améliorer le débit du moteur de stockage : cas d'application MaxScale dans MySQL Jul 27, 2023 pm 10:05 PM

Améliorer le débit du moteur de stockage : cas d'application MaxScale dans MySQL Introduction : Dans l'environnement actuel du big data et de la forte concurrence, comment améliorer le débit de la base de données est devenu un problème auquel de nombreuses entreprises et développeurs sont confrontés. En tant que base de données relationnelle open source couramment utilisée, l'optimisation des performances de MySQL a toujours attiré beaucoup d'attention. Cet article présentera une méthode pour améliorer le débit de la base de données MySQL à l'aide de l'outil MaxScale, ainsi que des cas d'application spécifiques. 1. Introduction à MaxScale MaxScale est

Soudain! ChatGPT Plus abandonné Soudain! ChatGPT Plus abandonné Apr 07, 2023 pm 09:01 PM

Désormais, ChatGPT ne prend plus en charge le paiement Plus. △La raison de la capture d'écran de ChatGPT est très simple : Forte demande. La demande était si élevée qu'OpenAI a dû suspendre les ventes du Plus. On ne sait pas quand il ouvrira plus tard. Il y a quelques jours, ChatGPT a provoqué des discussions animées en raison d'interdictions de comptes à grande échelle, et maintenant il a officiellement fermé la demande d'adhésion payante Plus. De nombreux internautes l'attribuent à des ressources informatiques insuffisantes, ce qui n'est plus un problème qui peut être résolu uniquement avec de l'argent. Microsoft, le bailleur de fonds, doit également fournir sa propre base d'utilisateurs. Il n’y a plus assez de puissance de calcul sur Terre pour répondre à la demande. Certains internautes qui ont déjà payé ont exprimé leur gratitude : je ne peux vraiment pas imaginer revenir à l’époque de GPT-3.5. ChatGPT closePlu

Erreur Java : la ressource d'application est introuvable, comment résoudre et éviter Erreur Java : la ressource d'application est introuvable, comment résoudre et éviter Jun 24, 2023 pm 06:58 PM

Java est un langage de programmation largement utilisé pour développer des applications et créer des sites Web. Cependant, lors du développement et du déploiement d'applications Java, vous pouvez rencontrer l'erreur suivante : Impossible de trouver les ressources de l'application. Cette erreur se produit souvent lors du packaging et du déploiement d'applications Java. Cet article traite des causes, des solutions et des moyens d'éviter cette erreur. Cause de l'erreur L'erreur de ressource d'application introuvable est généralement provoquée par certaines des raisons suivantes : 1.1 Le fichier est manquant ou endommagé : lorsque le package d'application ou le fichier de bibliothèque dépendant est manquant ou endommagé,

See all articles