Oracle 性能优化
1、在select语句中避免使用 “*” 2、尽可能减小记录集行数 限制记录集获取到的记录行数同样可以缩短语句执行时间,提高查询效率。 SELECT USER_NAME, ADDRESS, LOGIN_ADTE FROM LOG_EVENT WHERE ROWNUM = 100 ORDER BY LOGON_DATE DESC; 3、使用ROWID 高效
1、在select语句中避免使用 “*”
2、尽可能减小记录集行数
限制记录集获取到的记录行数同样可以缩短语句执行时间,提高查询效率。
SELECT USER_NAME, ADDRESS, LOGIN_ADTE
FROM LOG_EVENT
WHERE ROWNUM
3、使用ROWID 高效删除重复数据
在重复的记录中,可能所有列的内容都相同,但是ROWID 不会重复。
DELETE FROM STU S
WHERE S.ROWID > (SELECT MIN(T.ROWID)
FROM STU T
WHERE T.SNO = S.SNO);
4、使用TRUNCATE 替代DELETE删除记录
5、高效统计记录行数(实际应用中并没有使用价值)
使用USER_TABLES 视图查询记录行数
SELECT TABLE_NAME, NUM_ROWS
FROM USER_TABLES
WHERE TABLE_NAME = ‘STU’
补充:USER_TABLES 视图中保存了Oracle的所有用户表基本信息,包括表空间、状态、缓存等。
6、尽量多使用COMMIT
执行COMMIT 语句后能释放的资源主要包括:
l 回滚段上用于回复数据的信息
l 被程序语句获取的锁
l REDO LOG BUFFER 中的空间
l Oracle 为管理上述3 种资源的内部花销
7、避免使用HAVING 语句
HAVING 语句只会在检索出所有记录之后才对结果集进行过滤。若能通过WHERE 子句限制查询的数目,可以减少这方面的开销。
8、用EXISTS 替代IN 谓词
带有EXISTS 谓词的子查询不返回任何实际数据,只产生逻辑真值TRUE 或逻辑假值FALSE。
9、使用 “>=” 代替 “>” 运算符
10、避免在SELECT 子句中使用DISTINCT 关键字
补充:消除重复记录可以通过子查询、GROUPBY 等其他方式实现,对于大数据来说,尽量避免使用DISTINCT。
11、用索引提高查询效率
12、避免在索引列上进行运算
在索引列上进行运算,将导致索引失效。
13、在索引列上使用UNION替代OR
在SELECT 语句中对索引列进行OR操作,此时索引将不会被引用。对索引列使用OR 运算符将造成全表扫描。
补充:使用UNION 代替OR 操作规则只针对多个索引列有效,如果有的列没有索引,检索效率可能反而会因为没有选择OR 而降低。
14、避免在索引列上使用ISNULL 或 IS NOT NULL 条件
对于Oracle 索引来说,如果一个索引列的某个值为空,该值将不存在于索引列中。
15、使用WHERE 子句优化GROUP BY (内容同7)
使用WHERE 子句实现部分HAVING 子句的功能。
16、处理预定义异常
17、处理自定义异常
本内容摘自《Oracle 数据库编程经典300例》

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

La durée de conservation des journaux de la base de données Oracle dépend du type de journal et de la configuration, notamment : Redo logs : déterminé par la taille maximale configurée avec le paramètre "LOG_ARCHIVE_DEST". Redo logs archivés : Déterminé par la taille maximale configurée par le paramètre "DB_RECOVERY_FILE_DEST_SIZE". Redo logs en ligne : non archivés, perdus au redémarrage de la base de données et la durée de conservation est cohérente avec la durée d'exécution de l'instance. Journal d'audit : Configuré par le paramètre "AUDIT_TRAIL", conservé 30 jours par défaut.

La quantité de mémoire requise par Oracle dépend de la taille de la base de données, du niveau d'activité et du niveau de performances requis : pour le stockage des tampons de données, des tampons d'index, l'exécution d'instructions SQL et la gestion du cache du dictionnaire de données. Le montant exact dépend de la taille de la base de données, du niveau d'activité et du niveau de performances requis. Les meilleures pratiques incluent la définition de la taille SGA appropriée, le dimensionnement des composants SGA, l'utilisation d'AMM et la surveillance de l'utilisation de la mémoire.

Exigences de configuration matérielle du serveur de base de données Oracle : Processeur : multicœur, avec une fréquence principale d'au moins 2,5 GHz Pour les grandes bases de données, 32 cœurs ou plus sont recommandés. Mémoire : au moins 8 Go pour les petites bases de données, 16 à 64 Go pour les tailles moyennes, jusqu'à 512 Go ou plus pour les grandes bases de données ou les charges de travail lourdes. Stockage : disques SSD ou NVMe, matrices RAID pour la redondance et les performances. Réseau : réseau haut débit (10GbE ou supérieur), carte réseau dédiée, réseau à faible latence. Autres : alimentation stable, composants redondants, système d'exploitation et logiciels compatibles, dissipation thermique et système de refroidissement.

Comparaison des performances de différents frameworks Java : Traitement des requêtes API REST : Vert.x est le meilleur, avec un taux de requêtes de 2 fois SpringBoot et 3 fois Dropwizard. Requête de base de données : HibernateORM de SpringBoot est meilleur que l'ORM de Vert.x et Dropwizard. Opérations de mise en cache : le client Hazelcast de Vert.x est supérieur aux mécanismes de mise en cache de SpringBoot et Dropwizard. Cadre approprié : choisissez en fonction des exigences de l'application. Vert.x convient aux services Web hautes performances, SpringBoot convient aux applications gourmandes en données et Dropwizard convient à l'architecture de microservices.

Pour créer une tâche planifiée dans Oracle qui s'exécute une fois par jour, vous devez effectuer les trois étapes suivantes : Créer une tâche. Ajoutez un sous-travail au travail et définissez son expression de planification sur "INTERVAL 1 DAY". Activez le travail.

La quantité de mémoire requise pour une base de données Oracle dépend de la taille de la base de données, du type de charge de travail et du nombre d'utilisateurs simultanés. Recommandations générales : petites bases de données : 16 à 32 Go, bases de données moyennes : 32 à 64 Go, grandes bases de données : 64 Go ou plus. D'autres facteurs à prendre en compte incluent la version de la base de données, les options d'optimisation de la mémoire, la virtualisation et les meilleures pratiques (surveiller l'utilisation de la mémoire, ajuster les allocations).

La complexité temporelle mesure le temps d'exécution d'un algorithme par rapport à la taille de l'entrée. Les conseils pour réduire la complexité temporelle des programmes C++ incluent : le choix des conteneurs appropriés (tels que vecteur, liste) pour optimiser le stockage et la gestion des données. Utilisez des algorithmes efficaces tels que le tri rapide pour réduire le temps de calcul. Éliminez les opérations multiples pour réduire le double comptage. Utilisez des branches conditionnelles pour éviter les calculs inutiles. Optimisez la recherche linéaire en utilisant des algorithmes plus rapides tels que la recherche binaire.

Les techniques efficaces pour optimiser les performances multithread C++ incluent la limitation du nombre de threads pour éviter les conflits de ressources. Utilisez des verrous mutex légers pour réduire les conflits. Optimisez la portée du verrou et minimisez le temps d’attente. Utilisez des structures de données sans verrouillage pour améliorer la simultanéité. Évitez les attentes occupées et informez les threads de la disponibilité des ressources via des événements.
