sont des variables de table créées en mémoire ou dans TEMPDB? Pareil pour Tables Temps courtes? P>
3 Réponses :
une table TEMP sera créé dans TEMPDB et vous pouvez facilement vérifier en interrogeant la table SysObjects dans TEMPDB
Exemple P>
declare @v table(id int) select top 1 * from tempdb.sys.sysobjects where name like '#%' and name not like '%[_]%' order by crdate desc select * from @v
Je crois comprendre que, au minimum, la structure d'une variable de table est toujours créée dans TEMPDB. Ensuite, comme pointé par SQLMENACE < / a>, les données peuvent ou non se répandues. P>
par Cet article de la base de connaissances Microsoft : p>
Une variable de table n'est pas une mémoire uniquement
structure. Parce qu'une variable de table
pourrait contenir plus de données que possible dans
mémoire, il doit avoir une place sur disque
pour stocker des données. Les variables de table sont
créé dans la base de données TEMPDB similaire
aux tables temporaires. Si la mémoire est
disponible, les deux variables de table et
Les tables temporaires sont créées et
traitée en mémoire (données
cache). P>
blockQuote>
Les données sont toujours conservées sur des pages de données appartenant à TEMPDB CODE>. Celles-ci peuvent être écrites ou non écrites au disque et si elles sont écrites dans le disque, les pages peuvent toujours être dans le pool tampon. Certaines démonstrations pertinentes à la fin de ma réponse ici
dans MS SQL 2014 a été introduit de type spécial de variables de table "Variables de table optimisées de la mémoire". Et ils n'utilisent pas templdb. P>
voir https://msdn.microsoft.com/en-us/library /dn535766.aspx P>