数据库优化实践【TSQL篇】
数据库优化实践【TSQL篇】
在前面我们介绍了如何正确使用索引,调整索引是见效最快的性能调优方法,但一般而言,调整索引只会提高查询性能。除此之外,我们还可以调整数据访问代码和TSQL,本文就介绍如何以最优的方法重构数据访问代码和TSQL。
第四步:将TSQL代码从应用程序迁移到数据库中
也许你不喜欢我的这个建议,你或你的团队可能已经有一个默认的潜规则,那就是使用ORM(Object Relational Mapping,即对象关系映射)生成所有SQL,并将SQL放在应用程序中,但如果你要优化数据访问性能,或需要调试应用程序性能问题,我建议你将SQL代码移植到数据库上(使用存储过程,视图,函数和触发器),原因如下:
1、使用存储过程,视图,函数和触发器实现应用程序中SQL代码的功能有助于减少应用程序中SQL复制的弊端,因为现在只在一个地方集中处理SQL,为以后的代码复用打下了良好的基础。
2、使用数据库对象实现所有的TSQL有助于分析TSQL的性能问题,同时有助于你集中管理TSQL代码。
3、将TS QL移植到数据库上去后,可以更好地重构TSQL代码,以利用数据库的高级索引特性。此外,应用程序中没了SQL代码也将更加简洁。
虽然这一步可能不会象前三步那样立竿见影,但做这一步的主要目的是为后面的优化步骤打下基础。如果在你的应用程序中使用ORM(如NHibernate)实现了数据访问例行程序,在测试或开发环境中你可能发现它们工作得很好,但在生产数据库上却可能遇到问题,这时你可能需要反思基于ORM的数据访问逻辑,利用TSQL对象实现数据访问例行程序是一种好办法,这样做有更多的机会从数据库角度来优化性能。
我向你保证,如果你花1-2人月来完成迁移,那以后肯定不止节约1-2人年的的成本。
OK!假设你已经照我的做的了,完全将TSQL迁移到数据库上去了,下面就进入正题吧!
第五步:识别低效TSQL,采用最佳实践重构和应用TSQL
由于每个程序员的能力和习惯都不一样,他们编写的TSQL可能风格各异,部分代码可能不是最佳实现,对于水平一般的程序员可能首先想到的是编写TSQL实现需求,至于性能问题日后再说,因此在开发和测试时可能发现不了问题。
也有一些人知道最佳实践,但在编写代码时由于种种原因没有采用最佳实践,等到用户发飙的那天才乖乖地重新埋头思考最佳实践。
我觉得还是有必要介绍一下具有都有哪些最佳实践。
1、在查询中不要使用“select *”
(1)检索不必要的列会带来额外的系统开销,有句话叫做“该省的则省”;
(2)数据库不能利用“覆盖索引”的优点,因此查询缓慢。
2、在select清单中避免不必要的列,在连接条件中避免不必要的表
以上就是数据库优化实践【TSQL篇】的内容,更多相关文章请关注PHP中文网(www.php.cn)!

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)

Les conseils pour optimiser les performances des requêtes Hibernate incluent : l'utilisation du chargement différé pour différer le chargement des collections et des objets associés ; l'utilisation du traitement par lots pour combiner les opérations de mise à jour, de suppression ou d'insertion ; l'utilisation du cache de deuxième niveau pour stocker les objets fréquemment interrogés en mémoire à l'aide de connexions externes HQL ; , récupérer les entités et leurs entités associées ; optimiser les paramètres de requête pour éviter le mode de requête SELECTN+1 ; utiliser des curseurs pour récupérer des données massives en blocs ; utiliser des index pour améliorer les performances de requêtes spécifiques.

Comment améliorer la vitesse d'accès du site Web Python grâce à l'optimisation de la base de données ? Résumé Lors de la création d'un site Web Python, une base de données est un composant essentiel. Si la vitesse d’accès à la base de données est lente, cela affectera directement les performances et l’expérience utilisateur du site Web. Cet article abordera certaines façons d'optimiser votre base de données pour améliorer la vitesse d'accès de votre site Web Python, ainsi que quelques exemples de code. Introduction Pour la plupart des sites Web Python, la base de données est un élément clé du stockage et de la récupération des données. Si elle n’est pas optimisée, la base de données peut devenir un goulot d’étranglement en termes de performances. Livre

SpringBoot est un framework Java populaire connu pour sa facilité d'utilisation et son développement rapide. Cependant, à mesure que la complexité de l’application augmente, les problèmes de performances peuvent devenir un goulot d’étranglement. Afin de vous aider à créer une application springBoot aussi rapide que le vent, cet article partagera quelques conseils pratiques d'optimisation des performances. Optimiser le temps de démarrage Le temps de démarrage des applications est l'un des facteurs clés de l'expérience utilisateur. SpringBoot propose plusieurs façons d'optimiser le temps de démarrage, telles que l'utilisation de la mise en cache, la réduction de la sortie des journaux et l'optimisation de l'analyse du chemin de classe. Vous pouvez le faire en définissant spring.main.lazy-initialization dans le fichier application.properties

Dans la base de données MySQL, l'indexation est un moyen très important d'optimisation des performances. Lorsque la quantité de données dans la table augmente, des index inappropriés peuvent ralentir les requêtes ou même provoquer des pannes de base de données. Afin d'améliorer les performances des bases de données, les index doivent être utilisés de manière rationnelle lors de la conception des structures de tables et des instructions de requête. L'index composite est une technologie d'indexation plus avancée qui améliore l'efficacité des requêtes en combinant plusieurs champs sous forme d'index. Dans cet article, nous détaillerons comment améliorer les performances de MySQL en utilisant des index composites. Qu'est-ce que l'indice composite

1. Optimisation du code pour éviter d'utiliser trop d'annotations de sécurité : Dans Controller et Service, essayez de réduire l'utilisation de @PreAuthorize et @PostAuthorize et d'autres annotations. Ces annotations augmenteront le temps d'exécution du code. Optimiser les instructions de requête : lors de l'utilisation de springDataJPA, l'optimisation des instructions de requête peut réduire le temps d'interrogation de la base de données, améliorant ainsi les performances du système. Mise en cache des informations de sécurité : la mise en cache de certaines informations de sécurité couramment utilisées peut réduire le nombre d'accès à la base de données et améliorer la vitesse de réponse du système. 2. Utilisez des index pour l'optimisation de la base de données : la création d'index sur des tables fréquemment interrogées peut améliorer considérablement la vitesse de requête de la base de données. Nettoyer régulièrement les journaux et les tables temporaires : nettoyer régulièrement les journaux et les tables temporaires

D'un point de vue technique, pourquoi Oracle peut-il battre MySQL ? Ces dernières années, les systèmes de gestion de bases de données (SGBD) ont joué un rôle essentiel dans le stockage et le traitement des données. Oracle et MySQL, deux SGBD populaires, ont toujours attiré beaucoup d'attention. Cependant, d'un point de vue technique, Oracle est plus puissant que MySQL à certains égards, donc Oracle est capable de vaincre MySQL. Premièrement, Oracle excelle dans le traitement de données à grande échelle. Oracle

Avec le développement continu de la technologie informatique et la croissance continue de l’échelle des données, les bases de données sont devenues une technologie vitale. Cependant, certains problèmes courants sont rencontrés lors de l'utilisation de bases de données sur les systèmes Linux. Cet article présente certains problèmes courants de bases de données sur les systèmes Linux et leurs solutions. Problèmes de connexion à la base de données Lors de l'utilisation d'une base de données, des problèmes tels qu'un échec de connexion ou un délai de connexion surviennent parfois. Ces problèmes peuvent être causés par des erreurs de configuration de la base de données ou des droits d'accès insuffisants. Solution : Vérifiez le fichier de configuration de la base de données pour vous assurer

Comment optimiser les requêtes de base de données pour les plugins WordPress personnalisés Résumé : Pour les développeurs développant des plugins personnalisés à l'aide de WordPress, il est crucial de comprendre comment optimiser les requêtes de base de données. Cet article présentera quelques techniques d'optimisation pour aider les développeurs à améliorer les performances des plug-ins personnalisés. Introduction : À mesure que les sites WordPress se développent et que le trafic augmente, les performances des requêtes de base de données deviennent de plus en plus critiques. L'optimisation des requêtes de base de données peut améliorer considérablement la vitesse et le temps de réponse de votre site Web, offrant ainsi une meilleure expérience utilisateur. Cet article
