Maison base de données tutoriel mysql Comment écrire et optimiser les procédures stockées SQL Server

Comment écrire et optimiser les procédures stockées SQL Server

Mar 19, 2017 am 10:51 AM
php php教程 视频教程

[Introduction] Au cours du processus de développement d'une base de données, une logique métier et des opérations de base de données complexes sont souvent rencontrées. À ce stade, SP sera utilisé pour encapsuler les opérations de base de données. S'il y a de nombreux SP dans le projet et qu'il n'y a pas certaines normes d'écriture, cela rendra difficile la maintenance du système à l'avenir et rendra difficile la compréhension de la logique des grands SP. De plus, par exemple,

Au cours du processus de développement de la base de données, des problèmes complexes sont souvent rencontrés. Pour la logique métier et les opérations de base de données, SP sera utilisé pour encapsuler les opérations de base de données à ce stade. Si le projet comporte de nombreux SP et que l'écriture n'est pas standardisée, cela rendra difficile la maintenance du système à l'avenir et rendra difficile la compréhension de la logique des grands SP. De plus, si la quantité de données dans la base de données est élevée. grand ou le projet a des exigences de performances élevées pour les SP, vous rencontrerez C'est un problème d'optimisation, sinon la vitesse peut être très lente. Par expérience personnelle, un SP optimisé est même des centaines de fois plus efficace qu'un SP avec des performances médiocres. .


Détails :

1. Si les développeurs utilisent des tables ou des vues d'autres bibliothèques, ils doivent créer des vues dans la bibliothèque actuelle pour implémenter des opérations entre bibliothèques. directement "databse.dbo.table_name", car sp_depends ne peut pas afficher la table ou la vue inter-bases de données utilisée par le SP, ce qui n'est pas pratique pour la vérification.

2. Avant de soumettre SP, les développeurs doivent avoir utilisé set showplan on pour analyser le plan de requête et effectuer leur propre vérification d'optimisation des requêtes.

3. Pour améliorer l'efficacité du fonctionnement du programme et optimiser les applications, vous devez prêter attention aux points suivants lors de l'écriture du SP :


(a) Spécifications d'utilisation SQL. :

i. Essayez d'éviter les opérations de transactions volumineuses et utilisez la clause holdlock avec prudence pour améliorer la concurrence du système.

ii. Essayez d'éviter d'accéder de manière répétée à la ou aux mêmes tables, en particulier aux tables contenant de grandes quantités de données. Vous pouvez d'abord envisager d'extraire les données dans une table temporaire en fonction de conditions, puis d'établir une connexion.

iii. Essayez d'éviter d'utiliser des curseurs, car les curseurs sont moins efficaces. Si les données exploitées par le curseur dépassent 10 000 lignes, elles doivent être réécrites si un curseur est utilisé, essayez d'éviter les boucles de curseur. Effectuez ensuite l’opération de jointure de table.

iv. Faites attention à l'écriture des mots où. L'ordre des déclarations doit être déterminé en fonction de l'ordre de l'index et de la taille du champ. ordre cohérent avec l'ordre et la plage de l'index, du grand au petit.

v. N'effectuez pas de fonctions, d'opérations arithmétiques ou d'autres opérations d'expression sur le côté gauche de "=" dans la clause Where, sinon le système pourrait ne pas être en mesure d'utiliser l'index correctement.

vi. Essayez d'utiliser exist au lieu de select count(1) pour déterminer si un enregistrement existe. La fonction count n'est utilisée que pour compter toutes les lignes de la table, et count(1) est plus. plus pratique que count(*).

vii. Essayez d'utiliser «>=» au lieu de «>».

viii. Faites attention au remplacement entre certaines clauses or et les clauses d'union

ix. de connexion de données.

x. Faites attention à la relation entre les paramètres et les types de données dans la procédure stockée.

xi. Faites attention au volume de données des opérations d'insertion et de mise à jour pour éviter les conflits avec d'autres applications. Si la quantité de données dépasse 200 pages de données (400 000 ), le système mettra à niveau le verrou et le verrou au niveau de la page sera mis à niveau vers un verrou au niveau de la table.


(b) Spécifications d'utilisation de l'index :

i La création d'index doit être envisagée en conjonction avec l'application. les grandes tables OLTP ne doivent pas dépasser 6 index.

ii. Essayez d'utiliser les champs d'index comme conditions de requête, en particulier les index clusterisés. Si nécessaire, vous pouvez utiliser l'index nom_index pour forcer la spécification de l'index

iii. Évitez le couplage. Effectuez une analyse de table lors de l'interrogation de tables volumineuses et envisagez de créer de nouveaux index si nécessaire.

iv. Lors de l'utilisation d'un champ d'index comme condition, si l'index est un index conjoint, alors le premier champ de l'index doit être utilisé comme condition pour garantir que le système utilise l'index, sinon l'index ne sera pas utilisé.

v. Faites attention à la maintenance de l'index, reconstruisez périodiquement l'index et recompilez la procédure stockée.


(c) Spécifications d'utilisation de Tempdb :

i Essayez d'éviter d'utiliser distinct, classer par, regrouper par, avoir, rejoindre, cumuler. , car ces déclarations augmenteront la charge de tempdb.

ii. Évitez de créer et de supprimer fréquemment des tables temporaires et réduisez la consommation des ressources des tables système.

iii. Lors de la création d'une table temporaire, si la quantité de données insérées en même temps est importante, vous pouvez utiliser select into au lieu de créer une table pour éviter les journaux et améliorer la vitesse si la quantité de données est importante ; n'est pas volumineux, afin de faciliter le système. Pour les ressources de table, il est recommandé de créer d'abord une table, puis de l'insérer.

iv. Si la table temporaire contient une grande quantité de données et doit être indexée, le processus de création de la table temporaire et d'indexation doit être placé dans une procédure sous-stockée distincte pour garantir que le le système peut facilement Il est préférable d'utiliser l'index de la table temporaire.

v. Si des tables temporaires sont utilisées, toutes les tables temporaires doivent être explicitement supprimées à la fin de la procédure stockée. Commencez par tronquer la table, puis supprimez-la. Cela peut éviter un verrouillage à long terme. des tables système.

vi. Soyez prudent lors de la connexion de requêtes et de modifications entre de grandes tables temporaires et d'autres grandes tables afin de réduire la charge sur les tables système, car cette opération utilisera la table système tempdb plusieurs fois dans une seule instruction.


(d) Utilisation raisonnable de l'algorithme :


Basé sur la technologie d'optimisation SQL mentionnée ci-dessus et le contenu d'optimisation SQL dans le manuel ASE Tuning, combiné à des applications pratiques, plusieurs algorithmes sont utilisés à des fins de comparaison pour obtenir la méthode qui consomme le moins de ressources et est la plus efficace. . Des commandes de réglage ASE spécifiques sont disponibles : activer les statistiques, activer l'heure des statistiques, activer showplan, etc.

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 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

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

Configuration du projet CakePHP Configuration du projet CakePHP Sep 10, 2024 pm 05:25 PM

Dans ce chapitre, nous comprendrons les variables d'environnement, la configuration générale, la configuration de la base de données et la configuration de la messagerie dans CakePHP.

Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

Date et heure de CakePHP Date et heure de CakePHP Sep 10, 2024 pm 05:27 PM

Pour travailler avec la date et l'heure dans cakephp4, nous allons utiliser la classe FrozenTime disponible.

Téléchargement de fichiers CakePHP Téléchargement de fichiers CakePHP Sep 10, 2024 pm 05:27 PM

Pour travailler sur le téléchargement de fichiers, nous allons utiliser l'assistant de formulaire. Voici un exemple de téléchargement de fichiers.

Routage CakePHP Routage CakePHP Sep 10, 2024 pm 05:25 PM

Dans ce chapitre, nous allons apprendre les sujets suivants liés au routage ?

Discuter de CakePHP Discuter de CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP est un framework open source pour PHP. Il vise à faciliter grandement le développement, le déploiement et la maintenance d'applications. CakePHP est basé sur une architecture de type MVC à la fois puissante et facile à appréhender. Modèles, vues et contrôleurs gu

Comment configurer Visual Studio Code (VS Code) pour le développement PHP Comment configurer Visual Studio Code (VS Code) pour le développement PHP Dec 20, 2024 am 11:31 AM

Visual Studio Code, également connu sous le nom de VS Code, est un éditeur de code source gratuit – ou environnement de développement intégré (IDE) – disponible pour tous les principaux systèmes d'exploitation. Avec une large collection d'extensions pour de nombreux langages de programmation, VS Code peut être c

CakePHP créant des validateurs CakePHP créant des validateurs Sep 10, 2024 pm 05:26 PM

Le validateur peut être créé en ajoutant les deux lignes suivantes dans le contrôleur.

See all articles