Maison > base de données > tutoriel mysql > Comment SELECT TOP 100 PERCENT permet-il la matérialisation intermédiaire dans SQL Server ?

Comment SELECT TOP 100 PERCENT permet-il la matérialisation intermédiaire dans SQL Server ?

Barbara Streisand
Libérer: 2025-01-01 13:37:20
original
943 Les gens l'ont consulté

How Does SELECT TOP 100 PERCENT Enable Intermediate Materialization in SQL Server?

Matérialisation intermédiaire avec SELECT TOP 100 percent

Avant SQL Server 2005, une technique appelée « matérialisation intermédiaire » pouvait être utilisée pour forcer SQL Server pour honorer une clause ORDER BY dans une définition de vue en incluant TOP 100 PERCENT dans SELECT

Cependant, son utilisation s'est étendue au-delà des définitions de vues dans les instructions SQL dynamiques. L'objectif principal de SELECT TOP 100 PERCENT dans ce contexte est de tirer parti de la matérialisation intermédiaire. Cette technique consiste à créer un jeu de résultats intermédiaire en plaçant la clause ORDER BY dans la construction TOP 100 PERCENT.

Un exemple où cette technique peut être bénéfique est lorsque vous devez appliquer un filtre sur les résultats d'une requête imbriquée. . Considérons la requête suivante :

SELECT foo
FROM (SELECT foo FROM MyTable WHERE ISNUMERIC (foo) = 1) bar
WHERE CAST(foo AS int) > 100
Copier après la connexion

Dans cet exemple, la requête interne renvoie un ensemble de résultats qui est ensuite filtré dans la requête externe. Cependant, la clause ORDER BY dans la requête interne peut ne pas être honorée, ce qui entraîne des résultats imprévisibles.

En ajoutant SELECT TOP 100 PERCENT à la requête interne, vous pouvez forcer la matérialisation intermédiaire :

SELECT foo
FROM (SELECT TOP 100 PERCENT foo FROM MyTable WHERE ISNUMERIC (foo) = 1 ORDER BY foo) bar
WHERE CAST(foo AS int) > 100
Copier après la connexion

Cette matérialisation intermédiaire garantit que l'ensemble de résultats de la requête interne est ordonné avant d'être filtré dans la requête externe, fournissant ainsi le résultat souhaité. résultat.

Il est important de noter que cette technique ne doit être utilisée que lorsque cela est nécessaire et avec prudence, car des modifications dans les configurations du serveur (par exemple, niveau de correctif, schéma, index, nombre de lignes) pourraient potentiellement perturber sa fonctionnalité.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal