Meta tags:
description= Chapitre 08 - Optimiser le code SQL;
Headings (most frequently used words):
les, de, table, sql, plan, exécution, indicateurs, requête, et, optimiser, le, code, gestion, des, dynamique, lire, un, principaux, opérateurs, algorithmes, jointure, avancée, plans, son, tables, temporaires, pour, ou, contre, éviter, curseurs, optimisez, vos, déclencheurs, récupérer, vues, débordements, hachages, guides, écriture, ensembliste, comparaisons, filtres, grandeur, misère, fonctions, utilisateur, compter, lignes, une, vaut, il, mieux, utiliser, variables, type, limiter, pollings, avec, notifications, récursivité, mises, jour, tag, cloud, categories,
Text of the page (most frequently used words):
les (263), une (262), est (252), dans (211), des (181), pour (148), plan (147), table (134), sql (128), par (121), sur (110), vous (105), qui (98), que (98), select (90), #requête (88), from (83), exécution (82), lastname (76), nous (73), index (73), plus (67), sont (64), server (58), lignes (57), person (56), code (55), pas (52), exemple (51), avec (49), être (46), cette (45), contact (44), where (43), donc (42), peut (41), même (41), opérateur (41), firstname (40), comme (39), nombre (36), ligne (35), type (35), tables (30), colonne (30), recherche (30), instruction (29), deux (29), requêtes (27), set (27), colonnes (27), force (27), mais (26), elle (26), clause (26), plans (26), contactid (26), ces (25), très (25), fonction (25), scan (25), performances (25), utiliser (23), join (23), aussi (23), xml (23), pouvez (22), sous (21), données (21), cas (21), opérateurs (21), procédure (21), avons (20), transaction (20), cet (20), figure (20), sys (20), clustered (20), votre (19), doit (19), and (19), null (19), résultat (19), après (19), tempdb (19), chaque (19), jour (18), trigger (18), elles (18), sans (18), valeur (18), variable (18), fait (18), dbo (18), clé (18), indicateurs (18), update (17), déclencheur (17), sera (17), bien (17), order (17), fig (17), optimiseur (17), hash (17), permet (16), insert (16), soit (16), estimé (16), jointure (16), niveau (16), dynamique (16), showplan (16), son (15), autre (15), exec (15), option (15), leur (15), cache (15), base (15), utilisation (15), guide (15), partir (14), non (14), name (14), aide (14), syntaxe (14), éviter (14), cela (14), declare (14), compilation (14), spool (14), moteur (14), première (14), utilisé (14), indicateur (14), événement (13), query (13), événements (13), serveur (13), utile (13), souvent (13), sales (13), faire (13), ensembliste (13), avant (13), toute (13), simple (13), ainsi (13), paramètre (13), nom (13), hachage (13), begin (12), for (12), possible (12), jeu (12), delete (12), moins (12), fonctions (12), mise (12), été (12), rollback (12), réel (12), statistiques (12), coût (12), voir (12), optimisation (12), stockée (12), calcul (12), lookup (12), opération (11), tout (11), exécuter (11), ensuite (11), section (11), ordre (11), expression (11), group (11), choix (11), selon (11), création (11), mémoire (11), aggregate (11), optimiser (11), tous (10), lui (10), objets (10), with (10), utilisateur (10), déclencheurs (10), dire (10), celui (10), intérieur (10), filtre (10), ils (10), erreur (10), version (10), différence (10), travail (10), int (10), humanresources (10), middlename (10), liste (10), isolation (10), format (10), client (9), fromdate (9), currencycode (9), peuvent (9), expressions (9), alors (9), into (9), curseurs (9), avez (9), 2005 (9), affichage (9), statistics (9), tri (9), performance (9), union (9), not (9), employeeid (9), dont (9), langage (9), currentcontactid (9), voyons (9), plusieurs (9), taille (9), opérations (9), count (9), lorsque (9), loop (9), graphique (9), simplement (8), objet (8), entrée (8), effectuer (8), modification (8), partie (8), vue (8), retourne (8), instructions (8), ont (8), car (8), affiche (8), create (8), fois (8), ici (8), générer (8), top (8), trouvez (8), th1 (8), généré (8), varchar (8), temporaire (8), temps (8), parce (8), forcer (8), variables (8), emailaddress (8), suffix (8), résultats (8), stratégie (8), trace (8), guides (8), algorithme (8), nested (8), besoin (7), end (7), todate (7), voici (7), revanche (7), celle (7), gestion (7), session (7), ceci (7), ssms (7), verrous (7), row_number (7), notre (7), testloop (7), créer (7), méthode (7), fenêtrage (7), permettent (7), boucle (7), curseur (7), rapide (7), employee (7), appel (7), effectuée (7), cross (7), jointures (7), while (7), possibilité (7), utilisant (7), obtenir (7), estimation (7), trois (7), like (7), valeurs (7), abord (7), modifier (7), getcontactsforplanguide (7), mldr (7), quand (7), merge (7), bookmark (7), informations (6), notifications (6), aux (6), vérifier (6), toutes (6), autant (6), virtuelles (6), ses (6), mises (6), deleted (6), match (6), transactions (6), pratique (6), toujours (6), verrez (6), stockées (6), seule (6), nvarchar (6), recompilation (6), vos (6), groupe (6), faut (6), cte (6), autres (6), peu (6), all (6), contre (6), cur (6), administration (6), notamment (6), read (6), seconde (6), entre (6), haut (6), contrainte (6), doivent (6), relationnel (6), façon (6), unique (6), commande (6), étant (6), compute (6), scalar (6), seek (6), utilise (6), structure (6), vues (6), indique (6), granularité (6), readpast (6), distribution (6), auto (6), puis (6), flèches (6), travers (5), effectue (5), automatiquement (5), return (5), between (5), utilisés (5), bon (5), bonne (5), déclenche (5), début (5), depuis (5), écriture (5), versions (5), contient (5), fonctionne (5), row (5), procédures (5), provoque (5), important (5), effet (5), lors (5), suivante (5), over (5), pouvons (5), réaliser (5), créé (5), key (5), information (5), propriétés (5), nécessaire (5), transactionid (5), produire (5), phrase (5), général (5), compte (5), présence (5), remplacer (5), passer (5), deuxième (5), livre (5), argument (5), correspond (5), utilisée (5), microsoft (5), temporaires (5), lorsqu (5), dit (5), retour (5), mieux (5), reads (5), cardinalité (5), stream (5), puisque (5), getcountcontacts (5), scalaire (5), règle (5), quelques (5), coûteux (5), retournées (5), logique (5), syntaxes (5), phase (5), faite (5), optimize (5), hints (5), utiles (5), détail (5), verrons (5), algorithmes (5), agrégation (5), parcours (5), enfant (5), nonclustered (5), batch (5), apply (5), texte (5), profile (5), commandes (5), flèche (5), place (4), bol (4), contenu (4), utilisez (4), fonctionnalité (4), application (4), site (4), inserted (4), rowcount (4), permettant (4), devez (4), triggers (4), exécute (4), traiter (4), principaux (4), output (4), afficher (4), plutôt (4), visible (4), inutile (4), dangereux (4), principalement (4), idée (4), dml (4), currency (4), affectées (4), aucun (4), jusqu (4), externe (4), garantie (4), explicite (4), réalité (4), contexte (4), disponibles (4), deleteddate (4), sgbdr (4), premier (4), demande (4), voyez (4), system_objects (4), représentation (4), 2008 (4), th2 (4), mot (4), compter (4), str (4), boucles (4), plupart (4), mêmes (4), présenter (4), main (4), hoc (4), adams (4), source (4), execute (4), exécutée (4), permettre (4), aucune (4), verrouillage (4), suffit (4), déjà (4), vaut (4), total (4), comprendre (4), pourquoi (4), pages (4), cpu (4), cnt (4), façons (4), chercher (4), programmeur (4), rien (4), clés (4), choisi (4), retournent (4), droite (4), certaines (4), également (4), stockage (4), arbre (4), abercrombie (4), verrou (4), serializable (4), lire (4), récupérer (4), doublons (4), allons (4), consiste (4), propriété (4), collapse (4), split (4), lookforphysicalops (4), query_plan (4), dm_exec_query_plan (4), text (4), session_id (4), affichent (4), vont (4), info (4), bulle (4), rudi (3), bruchez (3), expertise (3), lequel (3), seront (3), références (3), changé (3), référence (3), readuncommitted (3), nocount (3), attention (3), ensemble (3), optimal (3), comportement (3), appelée (3), trop (3), estimées (3), complexes (3), portant (3), existe (3), déclenché (3), after (3), avoir (3), currencyarchive (3), disponible (3), reconfigure (3), sp_configure (3), options (3), désactiver (3), indiquent (3), quelles (3), quel (3), appelant (3), annule (3), faites (3), serait (3), créés (3), sauf (3), off (3), relativement (3), chaîne (3), jamais (3), 3609 (3), afin (3), via (3), lectures (3), showplan_xml (3), recherches (3), relatif (3), interne (3), supprimées (3), entendu (3), supprimée (3), values (3), tel (3), uniquement (3), ensemblistes (3), certains (3), veut (3), mis (3), recompilations (3), système (3), quelle (3), difficile (3), rownumber (3), ctetestloop (3), exactement (3), encore (3), solution (3), ctl (3), raison (3), problème (3), néanmoins (3), physique (3), potentiellement (3), fil (3), efficace (3), spécifique (3), article (3), hierarchyid (3), boss (3), près (3), chose (3), employeecte (3), actualcost (3), production (3), nombres (3), citations (3), comment (3), parcourir (3), passage (3), moyens (3), construction (3), pourrions (3), analyser (3), parfois (3), sécurité (3), statique (3), respectivement (3), solutions (3), searchcontactsdynamique (3), searchcontactsstatique (3), vient (3), envoi (3), charge (3), 8000 (3), écrire (3), traditionnelle (3), page (3), combinaison (3), vide (3), insertion (3), montre (3), tran (3), sysname (3), lié (3), déclaration (3), primaire (3), appliquer (3), lesquelles (3), révéler (3), performant (3), ressources (3), écrite (3), valable (3), obligé (3), object (3), lecture (3), déclarative (3), contacts (3), aller (3), titre (3), empêche (3), opérandes (3), seulement (3), constant (3), condition (3), filtres (3), opérande (3), changement (3), étape (3), étrangère (3), créent (3), modèle (3), address (3), indexée (3), gauche (3), actuelle (3), relationnelle (3), clauses (3), apparition (3), durant (3), suivants (3), sort (3), exécutions (3), nœud (3), sp_control_plan_guide (3), types (3), défaut (3), suivant (3), chapitre (3), imbriquée (3), conversions (3), schéma (3), installation (3), showplanxml (3), dernier (3), paramétrage (3), moyenne (3), indiquer (3), maximum (3), parallelism (3), donne (3), cost (3), maxdop (3), indiqué (3), devraient (3), considérer (3), complet (3), débordements (3), hachages (3), triées (3), extraire (3), vers (3), xquery (3), triée (3), présent (3), feuille (3), seul (3), bas (3), prédicat (3), lazy (3), celles (3), execution (3), extraction (3), représente (3), plan_handle (3), dm_exec_sql_text (3), compile (3), donnent (3), historiques (3), détruites (3), souris (3), threads (3), représenté (3), produit (3), docs (3), maintenance (3), alwayson (3), diagnostic (3), journaux (3), trouverez (2), basé (2), natif (2), rarement (2), sûr (2), vérification (2), profiter (2), web (2), limiter (2), pollings (2), dates (2), historique (2), chevauchent (2), currencyhistory (2), exists (2), alter (2), devra (2), contraintes (2), contenir (2), contrôles (2), passant (2), check (2), enfin (2), exécutant (2), voulez (2), réellement (2), placé (2), fine (2), current_timestamp (2), currency2 (2), but (2), légère (2), show (2), advanced (2), disallow (2), results (2), présents (2), renvoie (2), notez (2), intéressent (2), atr_d (2), archive (2), tester (2), pure (2), sauvegarde (2), nom_du_point (2), save (2), suivre (2), validé (2), envoyée (2), évitez (2), déclenchement (2), copie (2), store (2), suivi (2), retrouver (2), méfiez (2), correctement (2), implémentent (2), penser (2), terme (2), systématique (2), modifiant (2), court (2), augmente (2), existent (2), ddl (2), entrent (2), optimisez (2), importe (2), astuce (2), bricolage (2), surtout (2), partition (2), partitionnement (2), sûre (2), pourriez (2), capacité (2), gérer (2), implique (2), description (2), exemples (2), organization (2), employeename (2), donner (2), complexe (2), implémenté (2), classe (2), net (2), stocker (2), hiérarchie (2), malgré (2), calculée (2), managerid (2), 100 (2), cast (2), récursivité (2), était (2), common (2), transactiondate (2), 20030901 (2), transactionhistory (2), sum (2), essayer (2), toutefois (2), petits (2), totaux (2), cumulés (2), courant (2), volée (2), nouvelle (2), len (2), substring (2), auteur (2), homme (2), gens (2), concaténation (2), déclaratif (2), nécessaires (2), print (2), next (2), fetch (2), fetch_status (2), fast_forward (2), remplacement (2), intéressant (2), simples (2), meilleure (2), prendre (2), soient (2), préférable (2), viole (2), numéro (2), conservé (2), multiples (2), défauts (2), intéressante (2), inséré (2), essayons (2), appels (2), formulaire (2), révèle (2), règles (2), privilèges (2), contenus (2), risques (2), soyez (2), intégré (2), sorte (2), avantages (2), left (2), reçoit (2), filtrer (2), pratiquement (2), critères (2), sujet (2), évaluer (2), conclusion (2), utilisons (2), insérées (2), évidemment (2), impliquant (2), master (2), sysobjects (2), use (2), impossible (2), volumineuses (2), beaucoup (2), baser (2), absence (2), consomme (2), dure (2), propre (2), contenue (2), moment (2), certaine (2), apparaître (2), métadonnées (2), information_schema (2), démontrer (2), introduit (2), renvoyer (2), logical (2), dm_db_partition_stats (2), index_id (2), object_id (2), row_count (2), outer (2), nix (2), person_contact (2), trouve (2), nouveau (2), décidée (2), lit (2), 000 (2), 125 (2), ackerman (2), function (2), créons (2), noms (2), famille (2), modulariser (2), lieu (2), calculs (2), paraît (2), mauvaise (2), retourner (2), defined (2), grandeur (2), misère (2), entraîner (2), tant (2), sélection (2), prenons (2), constantes (2), fixe (2), choses (2), sarg (2), collation (2), présente (2), assurer (2), appuyer (2), nécessairement (2), addressid (2), recherchée (2), choisir (2), sélectivité (2), estimations (2), dépend (2), testez (2), comparaisons (2), heure (2), choisissez (2), intuitive (2), stratégies (2), signifie (2), procédurale (2), finalement (2), ensembles (2), algèbre (2), manière (2), améliorer (2), premiers (2), distinct (2), grande (2), descriptive (2), précise (2), libraire (2), coller (2), voie (2), plan_guides (2), event (2), operation (2), drop (2), pire (2), parameter (2), sniffing (2), optimizeforall (2), sp_create_plan_guide (2), procedure (2), parameterization (2), directement (2), exclusif (2), pose (2), strictement (2), équivalent (2), holdlock (2), nolock (2), uncommitted (2), beurre (2), quatre (2), read_committed_snapshot (2), versioning (2), committed (2), critère (2), noexpand (2), listons (2), exécutées (2), partout (2), élément (2), supprimé (2), provoquer (2), ressort (2), calculer (2), jacentes (2), considérés (2), changements (2), keepfixed (2), keep (2), mal (2), extrêmes (2), variable_name (2), unknown (2), rappelons (2), parallélisation (2), parallélisme (2), activer (2), désactivé (2), processeurs (2), indexation (2), génération (2), différents (2), entière (2), agit (2), objectif (2), customerid (2), forçant (2), certain (2), fin (2), ajoutant (2), logiques (2), physiques (2), avancée (2), warnings (2), agrégations (2), estimée (2), crée (2), parcourt (2), comparaison (2), importants (2), rapidement (2), fusion (2), correspondance (2), testées (2), imbriquées (2), volumes (2), joindre (2), retournée (2), heap (2), provenant (2), sélectionnées (2), sequence (2), identifiant (2), formes (2), particulières (2), rid (2), remote (2), créée (2), calculées (2), testée (2), comparées (2), filter (2), eager (2), séquence (2), entreprise (2), batchsequence (2), statements (2), http (2), schemas (2), com (2), sqlserver (2), 2004 (2), default (2), sql_handle (2), trouver (2), blog (2), dm_exec_requests (2), start_time (2), status (2), command (2), éliminer (2), spid (2), cours (2), profiler (2), binaire (2), contiennent (2), objectid (2), integerdata (2), binarydata (2), completed (2), starting (2), textdata (2), sqlhandle (2), recompilé (2), octets (2), grâce (2), compilées (2), éléments (2), détaillé (2), envoyées (2), 973 (2), parlerons (2), forcé (2), épaisses (2), petit (2), visuellement (2), fines (2), parallèle (2), parallélisé (2), indiquant (2), envoyé (2), fenêtre (2), affiché (2), fichier (2), extension (2), barre (2), outils (2), ctrl (2), qualité (2), graphe (2), implicites (2), problèmes (2), 2025 (2), shrink (2), sargabilité (2), journal (2), architecture (2), compteurs (2), sauvegardes (2), always (2), français (2), droits, réservés, 2026, services, contactez, moi, parlons, projet, gestionnaire, using, sqldependency, service, broker, applications, abonner, envoyés, changent, régulières, aurait, snac, sqlncli, mettre, chargées, native, raiserror, atr_iu, sales_currencyhistory, checkconsistency, validité, présuppose, acceptent, probablement, hors, tricher, ajoutons, cohérence, préférez, instant, traité, corps, basant, réorienter, intérêts, réécrire, before, instead, archivage, rediriger, songez, rend, cliente, parasitée, recordset, indésirable, renvoi, malencontreusement, interragit, référez, mentionnée, servez, mentionnées, columns_updated, sales_currency2, perte, frf, fera, prudent, mécanisme, points, effectivement, oubliez, dehors, fermera, éventuels, cursor_close_on_commit, insensitive, static, souhaitez, mesure, déclenchant, gère, égal, sortie, apparaît, exécuté, intérêt, déclencher, sens, commit, trancount, annuler, déclenchante, envoie, avertir, placer, bloc, try, catch, soir, feront, particuliers, massivement, modifiées, provoquera, activité, gérées, considéré, logiquement, ajoutées, fréquente, vidée, inscrite, smalldatetime, nchar, sales_currency, commun, opposition, déclenchent, essentiel, per, point, comportent, rappel, réutilisé, garder, prolonge, durée, exécutent, structures, cadre, aborderons, blocs, exécutés, obligatoirement, imiter, garantir, correct, facile, recommencer, numérotation, compliqué, officielle, raisons, contourner, limitation, précisément, regroupement, implémentation, documentée, consistante, primary, identity, affecter, mélanger, affectation, forme, détournée, évitera, dernière, structuration, intervallaire, frédéric, brouard, working, data, getroot, isdescendantof, getancestor, getlevel, level, dessus, disposez, méthodes, indexer, récursif, descendre, classique, employé, manager, récusrives, connaissait, profondeur, résout, totalcumule, précision, découpage, lisez, rencontré, citation, mots, system_views, tally, newid, charindex, nullif, mécontents, pauvres, réfléchissent, talleyrand, ennuyeux, incapable, ennuyer, cioran, généralement, guitry, 1000, séparations, pivots, coalesce, max, caractéristique, profit, final, séquentielle, finir, break, deallocate, close, open, cursor, traitement, révèlent, efficaces, traitements, vérifications, remplacés, récrire, différent, rencontre, automatiser, maintenances, acceptable, tenu, fréquence, fenêtres, favorables, rencontrer, manque, connaissance, possibilités, décision, eux, optimisables, pensons, only, circuite, ennemi, public, séquentiellement, côté, comportant, reste, lisibilité, figures, adapté, parlante, gagne, cachehit, nommées, proposées, réutilisation, écueil, tombons, accompagnement, quoi, agir, inconvénient, avantage, obéit, chaînage, propriétaires, termes, vérifiés, autorisé, injection, malicieux, utilisaeur, ayant, prudents, injections, prévenir, quelque, précompilation, évaluation, prises, internaute, saisir, arguments, prend, imaginons, multi, produits, particulière, fréquemment, construire, débat, dynamiquement, ute, recommande, précisons, intéressantes, petite, laquelle, insérons, annulation, annulée, bénéfique, codez, risquez, inattendus, expérimenter, enrôlées, part, possibles, utilisées, regardant, 1763, resources, statistique, zéro, productif, inconvénients, oui, maintenir, moindre, journalisée, constater, enrôlée, validée, privée, fn_dblog, gain, apporté, limité, réside, atteint, séparez, tests, ressemblant, 04ca11fe, entendrez, vit, erroné, assigne, 2000, transact, facilité, déclarées, restent, buffer, atteignent, nécessite, disque, sysidxstats, filtrée, démonstration, êtes, expérience, right, pk_contact_contactid, incluant, décortiquer, regardons, nettoyé, faciliter, nature, violée, impliquée, entrer, séparé, moyen, lier, forçons, huit, secondes, millisecondes, 1200, lues, tracé, observons, différences, gardons, inclure, profitons, returns, reprenant, réutiliser, circonstances, songer, serions, tentés, sembler, rêve, diminution, redondant, modularisation, répétitive, encapsuler, udf, user, functions, provoquent, plage, manier, précaution, grand, égalité, offre, pourtant, compilateur, transformer, arithmétiques, capable, contenant, simplifier, connue, folding, sargable, efficacement, annuaire, connaissant, premières, lettres, lili, alameda, jim, nez, écrivez, alamedalili, latin1_general_ci_ai, jimenez, collate, appelle, évalué, stocké, empêchera, forcera, conséquent, search, impératif, mère, déportée, fille, mères, indexées, générale, liées, telle, définition, bénéficient, effectuent, employeeaddress, addressline1, postalcode, city, montrent, quoiqu, considérez, présentes, êtres, exprimées, ternaire, vrai, faux, inconnu, composées, absolue, disons, évolue, améliore, futur, probable, finisse, dépasser, déduire, clarté, anciennes, connues, chance, bénéficier, optimisations, solides, performante, nécessité, environ, 200, écrit, voulons, personnes, utilité, balancer, bannir, introduites, pivot, optimales, forcent, proches, fonctionnement, considérations, pur, 19973, déclaratives, triste, définissent, travaillent, entorses, hérésie, tuples, relation, précis, ordré, théorie, influant, tris, coûteuses, influe, importance, décomposée, récrite, having, lisible, légèrement, différente, identique, considérant, faible, volumétrie, 290, faits, derniers, identiques, incluent, normaliser, équivalentes, produisent, presque, bijou, algorithmique, connaissances, dispose, qualifié, tâche, ailleurs, forciez, prendrait, allez, librairie, commander, demandez, ouvrage, dites, catalogue, livres, distribués, noter, isbn, souhaite, copier, programme, inscrire, mon, merci, imprimer, parvenir, postale, distributeur, éditions, purement, prénoms, triés, prénom, title, cohérent, maître, décrit, désiré, enregistrés, courante, échoué, explorateur, programmability, unsuccessful, successful, disable, supprimer, prenant, générique, scénario, désagréable, profiteraient, cause, limitera, dégâts, sélectif, utilisera, défavorable, provoquant, suppression, params, module_or_batch, stmt, spécifiez, autoparamétrage, template, créez, modifiez, désactivez, activez, xlock, updlock, tablockx, partagé, tablock, normalement, escalade, larges, posés, rowlock, repeatable, repeatableread, attendre, libération, incompatibles, incomplète, obtient, argent, forcément, cinq, mode, readcommittedlock, readcommitted, paglock, désactive, attente, verrouillée, immédiatement, nowait, index_val, forceseek, touchent, abordons, succintement, entrant, ajoutent, laisser, respecteront, forceplan, envoyez, unicode, devant, littéral, caractère, indésirables, enregistrement, pouvoir, répertoire, xsd, référencé, modifiée, ultérieur, invalide, connaissez, meilleur, antérieure, dégradé, marbre, xml_plan, limite, récursifs, récursive, maxrecursion, nombre_de_récursions, satisfaire, inverse, seuls, expand, views, diminue, dûes, six, dûe, cachant, individuellement, diminuer, produites, forced, recompile, spécifier, risque, hétérogène, sélectives, choisie, considérée, paramètres, ajoute, souplesse, distribuée, représentative, optimisé, donnée, déjouer, pièges, literal_constant, définie, degree, attribuer, coûteuse, paralléliser, threshold, machine, impliqué, nombre_de_processeurs, structurel, changer, pourra, soupçon, ordres, gagnante, spécifie, détriment, double, tranchant, empirer, garantit, conséquence, goal, optimisée, poursuivre, pagination, fast, nombre_de_lignes, rares, exceptions, sait, concat, territoryid, customeraddress, customer, garde, tâcher, expliquer, comporter, intéressants, disposition, préférée, voire, prédéfini, disparu, génère, répéter, fonctionnalités, savez, conscient, répercutions, revue, spécifiques, résolution, appliquant, agrégat, regroupements, renvoyée, processor, could, produce, because, the, this, détecter, dûs, errors, warning, débordement, ralentit, nettement, sqlos, réserve, quantité, optimiste, pendant, baver, parle, spilling, souffre, désavantages, bloquant, complètement, terminée, travailler, eau, consommateur, équijointures, phases, premièrement, privilégié, jeux, préparation, grosses, ordonnées, nœuds, feuilles, préalable, équijointure, comparer, égalités, correspondances, conservée, suivantes, exprimés, lookups, proportionnellement, schématiser, rechercher, cherchait, second, implémente, udx, retournant, traitée, valued, provient, précéder, proriétés, sauve, intermédiaire, parcourues, opère, norme, implémentée, servent, sequenceproject, segment, distant, serveurs, distants, obsolètes, linked, normalise, intervalles
Text of the page (random words):
6 compute scalar calcul d une valeur scalaire à partir d une expression et de tout type de source par exemple un count à partir d un scan d index est implémenté en tant que stream aggregate puis compute scalar un compute scalar est visible partout où une colonne doit contenir une valeur calculé concaténée etc concatenation copie des lignes d un jeu de résultats vers un autre typiquement utilisé pour un union ou union all dans le cas d un union si les entrées sont triées un merge join sera souvent préféré pour permettre un dédoublonnage plus rapide constant scan introduit des valeurs constantes comme nouvelles lignes un compute scalar est souvent utilisé ensuite pour ajouter des colonnes à cette ligne vous le verrez par exemple lorsque vous voudrez générer un jeu de résultats vide par exemple pour créer une structure de table vide à l aide de select into des requêtes telles que celles ci select top 0 from person address select from person address where 1 0 créent un plan très simple composés d un seul constant scan eager spool et lazy spool les opérateurs de spool créent une table de travail dans tempdb leur différence vient de leur enthousiasme à le faire le spool enthousiaste eager insère toutes les lignes en une seule fois dans la table de travail alors que le spool paresseux lazy le fait une ligne après l autre lorsque l opérateur dépendant du lazy spool lui demande une ligne celui ci en fait la demande à son opérateur enfant et stocke la ligne dans le spool filter filtre un jeu de lignes selon le critère présent dans sa propriété argument hash aggregate calcul d agrégation utilisé plutôt sur des volumes importants et uniquement quand la requête utilise un group by une table de hachage est créée pour permettre un calcul sur tous les sous ensembles en même temps cette méthode utilise plus de mémoire et verrouille plus que le stream aggregate hash match test de présence de ligne sur une table de hachage bâtie à partir de l entrée de l opérateur enfant la liste des colonnes faisant partie du hachage est dans le prédicat hash de la propriété argument les valeurs de hachage sont calculées pour chaque ligne testée et comparées à la table de hachage pour tester leur présence c est un opérateur physique qui dépend de trois types d opérateurs logiques join l opérateur enfant du haut est celui sur lequel la table de hachage est basée l opérateur du bas est celui à partir duquel chaque ligne est testée aggregate ou distinct la table de hachage est créée à partir de l entrée les doublons sont supprimés ou les agrégations calculées puis la comparaison est faite avec un scan de la même entrée pour conserver les match union la table de hachage est calculée à partir de l opérateur enfant du haut les doublons sont éliminés les lignes de l entrée du bas sont testées et les non match sont retournés key lookup recherche de lignes dans une table clustered à partir d une clé d index clustered présente dans un index nonclustered après parcours ou recherche de cet index c est une de deux formes particulières du bookmark lookup merge interval normalise plusieurs intervalles pour en produire un seul qui sera utilisé dans une recherche d index nonclustered index spool un index nonclustered est créé sur une table de travail dans tempdb pour améliorer les performances de recherche dans cette table les opérateurs remote delete insert query scan update indique des opérations sur un serveur distant ou un serveur lié le plus souvent à travers un serveur lié linked server les serveurs distants remote server étant obsolètes rid lookup recherche de lignes dans une table heap à partir d un identifiant de ligne row id présent au niveau feuille d un index nonclustered après parcours ou recherche de cet index c est une de deux formes particulières du bookmark lookup vous verrez souvent des opérateurs de segment sequence et sequenceproject dans les requêtes impliquant des fonctions de fenêtrage une syntaxe de la norme sql implémentée en sql server depuis la version 2005 elles servent à calculer le résultat des ces fonctions à l intérieur du jeu de résultats sort tri des lignes d entrée la propriété order by indique la ou les colonnes sur lesquelles s opère le tri spool et table spool spool sauve le résultat intermédiaire dans une table de travail dans tempdb table spool fait de même à partir des lignes parcourues et sélectionnées dans l opérateur enfant stream aggregate calcul d agrégation sur un ensemble ou sous ensemble provenant d une source triée si la source n est pas déjà triée elle l est par exemple si elle provient d un scan d index puisque la clé de l index est triée un opérateur sort devra précéder celui ci ou un hash aggregate sera utilisé selon la taille de la table vous trouvez dans les proriétés de l opérateur l expression de calcul 27 table scan scan de table sans index clustered donc de table heap table valued function une fonction utilisateur retournant une table est appelée la table retournée est stockée dans tempdb c est une variable de type table elle sera traitée dans tempdb udx une opération xml comme un for xml ou une requête xquery les algorithmes de jointure sql server implémente trois algorithmes physiques pour effectuer des jointures nous allons les présenter la boucle imbriquée nested loop est l algorithme de base qui est le plus simple et le plus utilisé dans les plans d exécution il consiste à extraire des lignes d une première table la table externe et à rechercher leur correspondance dans une seconde table la table interne comme si on cherchait une liste de références dans un premier livre pour aller chercher chaque référence dans un second l algorithme peut se schématiser ainsi pour chaque ligne de la table externe pour chaque ligne de la table externe joindre les lignes retour des lignes d où le nom de boucles imbriquées cet algorithme fonctionne très bien pour les petits volumes mais son coût augmente proportionnellement aux nombres de lignes à traiter les bookmark lookups sont exprimés en boucles imbriquées dans les plan depuis sql server 2005 la fusion merge join consiste à prendre deux tables triées selon les mêmes colonnes et à extraire les correspondances entre la première table et la seconde comme elles sont triées le parcours se fait toujours vers l avant chaque correspondance est conservée et les lignes suivantes sont testées c est donc un algorithme très rapide mais il implique un tri préalable et une clause d équijointure on ne peut comparer de cette façon que des égalités le tri étant très coûteux la jointure de fusion est donc utilisée principalement sur les tables ordonnées par un index clustered ou sur les nœuds feuilles d index le hachage hash join est privilégié sur les jeux de résultats importants car il permet après préparation de réaliser de grosses jointures relativement rapidement il fonctionne en deux phases il crée premièrement une table de hachage sur les colonnes de la condition de recherche sur la première table ensuite il parcourt la deuxième table crée un hachage pour chaque condition de recherche et effectue la comparaison avec la table de hachage cet algorithme ne fonctionne qu avec des clauses d équijointures il souffre de quelques désavantages il est bloquant car la première étape doit être complètement terminée avant de passer à la seconde alors que le nested loop et le merge peuvent travailler au fil de l eau et il est très consommateur de mémoire sqlos lui réserve une quantité de mémoire estimée pour son travail mais si cette estimation était trop optimiste il doit pendant l exécution baver sur tempdb on parle de spilling cela ralentit bien sûr nettement l opération le hachage est utilisé aussi pour les calculs d agrégations et ce débordement peut aussi se produire dans ce cas débordements de hachages vous avez un événement de trace qui vous permet de détecter les débordements dans tempdb dûs à des hachages hash aggregate et hash join errors and warnings hash warning vous pouvez utilisez des indicateurs de requête pour forcer un algorithme de calcul d agrégation option order group force le stream aggregate option hash group force le hash aggregate attention à l option hash group un hash aggregate n est possible qu en présence d un group by si vous utilisez cet indicateur dans une agrégation scalaire un calcul d agrégat sans regroupements donc sans clause group by une erreur vous sera renvoyée à la compilation query processor could not produce a query plan because of the hints defined in this query mldr 28 gestion avancée des plans d exécution vous pouvez modifier le plan d exécution généré par l optimiseur de deux façons soit en ajoutant à la requête des indicateurs spécifiques forçant certaines stratégies logiques ou physiques de résolution de la requête soit en y appliquant un plan d exécution fait main complet à l aide des guides de plan plan guides nous allons passer les deux solutions en revue mais avant cela il nous faut répéter encore que ces fonctionnalités ne sont à considérer qu en dernier ressort et lorsque vous savez ce que vous faites soyez notamment conscient des répercutions lors de changement de structure ou de distribution des valeurs dans les tables par exemple un guide de plan qui force l utilisation d un index qui a disparu génère une erreur les indicateurs de requête et de table vous avez à disposition des indicateurs hints permettant d indiquer à l optimiseur une stratégie préférée voire de le forcer à utiliser une méthode un index et jusqu à un plan d exécution prédéfini certains de ces indicateurs sont intéressants mais ils ne devraient être utilisés qu en cas de réel besoin le moteur d optimisation de sql server est très performant et le forcer à se comporter d une certaine manière est en général contre indiqué cette mise en garde faite nous allons présenter ici ces indicateurs et tâcher d expliquer quand ils peuvent être utilisés et quand ils ne devraient pas l être on utilise un indicateur à même la requête soit à la fin de celle ci avec la clause option pour les indicateurs de requête query hints soit après une table avec la clause with pour les indicateurs de tables table hints voici un exemple d utilisation d un indicateur de requête forçant un certain algorithme de jointure select from sales customer c join sales customeraddress ca on c customerid ca customerid where territoryid 5 option merge join indicateurs de requête les indicateurs de requête disponibles sont les suivants hash order group concat hash merge union loop merge hash join ces trois indicateurs permettent de forcer les algorithmes d agrégation voir section 8 1 1 plus haut d union et de jointure évitez de forcer ce choix à de rares exceptions près l optimiseur sait ce qu il fait fast nombre_de_lignes précise que la requête doit être optimisée pour renvoyer d abord un nombre spécifique de lignes au client avant de poursuivre cette clause peut être utile pour un affichage rapide sur une première page de pagination elle permet comme la clause top de profiter de la fonctionnalité d objectif de lignes row goal qui peut modifier le plan d exécution en conséquence c est une bonne chose pour le retour du nombre de lignes indiqué mais potentiellement au détriment des performances de la requête entière il s agit donc d une option à double tranchant qui peut empirer les choses 29 il est préférable d utiliser la clause top qui garantit le retour du nombre de lignes indiqué force order spécifie que l ordre des tables dans la déclaration de jointure doit être conservé cette option est rarement utile mais si vous avez un soupçon de mauvaise génération de plan vous pouvez essayer différents ordres d apparition des tables dans votre clause from avec cette option pour voir quelle est la combinaison gagnante une fois de plus un changement structurel de tables et la modification de la stratégie d indexation peut changer le plan optimal qui ne pourra plus alors être automatiquement choisi par l optimiseur maxdop nombre_de_processeurs vous permet d indiquer un nombre de processeurs maximum impliqué dans une parallélisation de la requête rappelons que la parallélisation maximum peut être définie au niveau du serveur par l option maximum degree of parallelism cet indicateur vous permet d attribuer une autre valeur à une requête spécifique ce qui peut se révéler utile soit pour désactiver le parallélisme sur une requête coûteuse maxdop 1 soit pour l activer sur une requête alors qu il est désactivé au niveau du serveur rappelons également que cette option ne signifie pas que sql server va nécessairement paralléliser la requête on lui en donne la possibilité et il fait son choix selon le coût de la requête selon l option de serveur cost threshold for parallelism et la charge actuelle des processeurs de la machine optimize for variable_name literal_constant mldr n indique à l optimiseur de générer un plan optimisé pour une valeur de paramètre donnée ce qui est très utile pour déjouer les pièges du parameter sniffing voir section 9 1 1 il vous suffit d indiquer une valeur distribuée de façon représentative dans votre colonne pour éviter la compilation avec des plans extrêmes sql server 2008 ajoute plus de souplesse à cet indicateur optimize for unknown tous les paramètres sont considérés avec une valeur de distribution moyenne de la colonne optimize for variable_name unknown une valeur de distribution moyenne est considérée pour ce paramètre cela permet d éviter dans tous les cas les valeurs extrêmes en général pour les colonnes qui ont une distribution très hétérogène quelques valeurs très sélectives d autres avec beaucoup de doublons une stratégie de scan sera choisie il est inutile de spécifier cet indicateur pour des colonnes avec une contrainte ou un index unique dans ce cas le plan n a pas de risque d être mal estimé recompile force la recompilation systématique de l instruction utile à l intérieur d un objet de code nous le verrons plus en détail dans la section 9 1 1 parameterization simple forced force un auto paramétrage nous verrons cet indicateur plus en détail dans la section 9 2 keep plan keepfixed plan permet de diminuer le nombre de recompilations produites sur une instruction dans un objet de code au fil des versions sql server provoque de moins en moins de recompilation en cachant de mieux en mieux les instructions individuellement keep plan diminue le nombre de recompilations dûes à des changements de cardinalité utile pour une table temporaire qui va provoquer une recompilation après une insertion première de six lignes keepfixed plan empêche une recompilation dûe à des changements de statistiques de distribution nous le verrons plus en détail dans la section 8 3 1 expand views indique que les index d une vue indexée ne doivent pas être utilisés pour satisfaire la requête mais que le plan doit se calculer sur les tables sous jacentes l indicateur de table with noexpand provoque l effet inverse seuls les index de la vue sont considérés maxrecursion nombre_de_récursions limite le nombre d appels...
|