Maison  >  Article  >  base de données  >  Que dois-je faire si la requête Oracle est lente ?

Que dois-je faire si la requête Oracle est lente ?

coldplay.xixi
coldplay.xixioriginal
2020-07-22 16:05:036027parcourir

Solutions pour ralentir les requêtes Oracle : 1. Placez les données, les journaux et les index sur différents périphériques d'E/S pour augmenter la vitesse de lecture ; 2. Mettez à niveau le matériel 3. Augmentez la vitesse du réseau 4. Vertical, divisez la table ; horizontalement pour réduire la taille du tableau.

Que dois-je faire si la requête Oracle est lente ?

Solution pour ralentir les requêtes Oracle :

1. Mettez les données, les journaux et les index dans différentes E/S. périphérique, pour augmenter la vitesse de lecture, Tempdb pouvait être placé sur RAID0 dans le passé, mais SQL2000 ne le prend plus en charge. Plus le volume (taille) des données est grand, plus il est important d'améliorer les E/S.

2. Divisez la table verticalement et horizontalement pour réduire la taille de la table (sp_spaceuse)

. 3. Mettez à niveau le matériel

4. En fonction des conditions de requête, créez des index, optimisez les index, optimisez les méthodes d'accès et limitez la quantité de données dans l'ensemble de résultats. Notez que le facteur de remplissage doit être approprié (utilisez de préférence la valeur par défaut de 0). L'index doit être aussi petit que possible. Il est préférable d'utiliser une colonne avec un petit nombre d'octets pour construire un index (voir création d'index). Ne construisez pas un seul index pour les champs avec un nombre limité de valeurs, comme par exemple. champs de genre

5. Améliorer la vitesse du réseau ;

6. Augmentez la mémoire du serveur Windows 2000 et SQL Server 2000 peuvent prendre en charge 4 à 8 Go de mémoire. Configurer la mémoire virtuelle : la taille de la mémoire virtuelle doit être configurée en fonction des services exécutés simultanément sur l'ordinateur. Lorsque vous exécutez Microsoft SQL Server® 2000, envisagez de définir la taille de la mémoire virtuelle à 1,5 fois la mémoire physique installée sur l'ordinateur. Si vous avez en outre installé la fonctionnalité de récupération de texte intégral et envisagez d'exécuter le service Microsoft Search pour effectuer une indexation et des requêtes de texte intégral, envisagez de configurer la taille de la mémoire virtuelle pour qu'elle soit au moins 3 fois supérieure à la mémoire physique installée sur l'ordinateur. Configurez l'option de configuration du serveur de mémoire maximale du serveur SQL Server sur 1,5 fois la mémoire physique (la moitié du paramètre de taille de la mémoire virtuelle).

7. Augmentez le nombre de processeurs du serveur ; mais vous devez comprendre que le traitement parallèle et le traitement en série nécessitent plus de ressources telles que la mémoire. L'utilisation du traitement parallèle ou en série est automatiquement évaluée par MsSQL. Une même tâche est décomposée en plusieurs tâches pouvant être exécutées sur le processeur. Par exemple, les clauses de tri, de connexion, d'analyse et GROUP BY des requêtes retardées sont exécutées en même temps. SQL SERVER détermine le niveau parallèle optimal en fonction de la charge du système. Les requêtes complexes qui nécessitent une grande quantité de CPU sont les plus adaptées. pour un traitement parallèle. Toutefois, les opérations de mise à jour Update, Insert et Delete ne peuvent pas être traitées en parallèle.

8. Si vous utilisez like pour interroger, la simple utilisation de l'index ne fonctionnera pas, mais l'indexation en texte intégral consomme de l'espace. like 'a%' Utiliser un index comme '%a' Lors d'une requête sans utiliser d'index comme '%a%', le temps de requête est proportionnel à la longueur totale de la valeur du champ, donc le type CHAR ne peut pas être utilisé, mais VARCHAR. Créez un index de texte intégral pour les champs avec des valeurs très longues.

9. Séparation du serveur DB et du serveur APPLication ; séparation d'OLTP et OLAP

10. La vue de partition distribuée peut être utilisée pour implémenter la fédération de serveur de base de données. Une fédération est un groupe de serveurs gérés séparément mais qui travaillent ensemble pour partager la charge de traitement du système. Ce mécanisme de partitionnement des données pour former un complexe de serveurs de base de données peut faire évoluer un ensemble de serveurs pour prendre en charge les besoins de traitement d'un grand site Web à plusieurs niveaux. Pour plus d'informations, consultez Conception d'un serveur de base de données fédérée. (Reportez-vous au fichier d'aide SQL 'Partitioned View')

a. Avant d'implémenter la vue partitionnée, la table doit être partitionnée horizontalement

b. Après avoir créé la table membre, définissez-la sur chacun. serveur membre Une vue partitionnée distribuée, chaque vue ayant le même nom. De cette manière, les requêtes faisant référence au nom de la vue partitionnée distribuée peuvent être exécutées sur n'importe quel serveur membre. Le système fonctionne comme s'il existait une copie de la table originale sur chaque serveur membre, mais en réalité il n'y a qu'une seule table membre et une seule vue partitionnée distribuée sur chaque serveur. L'emplacement des données est transparent pour l'application.

11. Reconstruisez les index DBCC REINDEX, DBCC INDEXDEFRAG, réduisez les données et les journaux DBCC SHRINKDB, DBCC SHRINKFILE. Ne définissez pas la croissance automatique de la base de données pour les grandes bases de données, car cela réduirait les performances du serveur.

Recommandations d'apprentissage associées : Tutoriel d'apprentissage de la base de données Oracle

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
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