Quelle est la différence entre une table en memory, une table temporaire et un tableau croisé dynamic?

En ce qui concerne SQL et les requêtes, quelle est la différence entre une table en memory, une table temporaire et un tableau croisé dynamic?

  • une table en memory est une table qui a été entièrement caching et qui n'entraîne donc aucune lecture physique (disque dur) lorsqu'elle est interrogée. Alternativement, il s'agit d'une variable table, déclarée dans un batch ou une fonction, sans persistance. Cela dépend de ce que vous entendez par "table en memory" 🙂

  • une table temp (orary) est une table qui sera automatiquement supprimée quand elle n'est plus nécessaire, généralement lorsque la session de création est terminée. Dans MS SQL, ils commencent par un # (ou deux hashs s'il s'agit de tables temporaires globales, partagées entre plusieurs sessions), et sont souvent créés avec une requête SELECT INTO #TEMPTABLE ….

  • un tableau croisé dynamic est une forme spéciale de requête où les valeurs de plusieurs lignes sont résumées, «pivotées» sur un axe, et deviennent des colonnes, où datatables récapitulatives deviennent alors les lignes. Cela arrive souvent lorsque vous avez des lignes sortingées sur des dates; ceux-ci peuvent alors être "pivotés" de sorte que vous vous retrouviez avec une colonne pour janvier, une pour février, une pour mars, etc.

Voici une bonne lecture sur les tables @temp vs les tables #temp

Je le résumerais comme suit:

Les variables de table @temp sont stockées en memory … plus vous les utilisez, plus le coût du processeur sera élevé … mais elles peuvent être mises en cache et, en tant que telles, fonctionner plus vite la plupart du time.

Les tables #temp sont stockées sur le disque, si vous stockez beaucoup de données dans la table temporaire, vous pouvez utiliser cette route, IE à des fins de création de rapports.

Utiliser PIVOT et UNPIVOT est juste un moyen de "faire pivoter" vos résultats … donc son access à la memory serait similaire à la façon dont les autres requêtes standard sont effectuées.