Partager via


Bases de données temporaires

Microsoft SQL Server Compact crée une base de données temporaire pour stocker des données temporaires, telles que :

  • des ensembles de résultats intermédiaires créés lors d'une requête ;

  • des tables de tri intermédiaires créées lors de l'exécution d'une clause ORDER BY, GROUP BY ou DISTINCT.

La base de données temporaire est créée uniquement si sa création est explicitement spécifiée. Son nom doit être spécifié lorsque le moteur démarre. La base de données temporaire est supprimée lorsque le moteur de base de données est fermé. L'arrêt anormal d'une application SQL Server Compact laisse des fichiers de base de données temporaires dans le système. Ces fichiers doivent être supprimés manuellement.

Emplacement de la base de données temporaire

Pour les opérations qui requièrent une base de données temporaire volumineuse, vous devez explicitement spécifier l'emplacement de création de la base de données temporaire. Si aucun emplacement n'est spécifié, l'emplacement de la base de données actuelle est alors utilisé en tant qu'emplacement de la base de données temporaire. Il n'est pas nécessaire de spécifier le nom de la base de données temporaire ; le nom de fichier commence par « SQLCE », par exemple : SQLCE334241234.tmp.

L'emplacement de la base de données temporaire doit être spécifié avant le démarrage du moteur et il ne peut pas être modifié lors de l'exécution de celui-ci. Vous pouvez modifier l'emplacement de la base de données temporaire lorsque la base de données est compactée. Pour plus d'informations, consultez Maintenance des bases de données et Procédure : compacter une base de données (par programme).

Spécification de l'emplacement

Vous devez spécifier l'emplacement de la base de données temporaire dans la chaîne de connexion à la base de données à l'aide du paramètre temp path, temp file directory ou ssce:temp file directory .

Notes

L'emplacement spécifié pour la base de données temporaire doit déjà exister.

Pour plus d'informations, consultez Procédure : spécifier l'emplacement de la base de données temporaire à l'aide d'ADO.NET (par programme) et Procédure : spécifier l'emplacement de la base de données temporaire à l'aide d'OLE DB (par programme).

Vous utilisez la chaîne de connexion avec les objets SqlCeConnection.

Croissance de la base de données temporaire

Les bases de données volumineuses peuvent générer des quantités importantes de données temporaires lors d'une exécution normale. Lorsque la base de données temporaire s'accroît à tel point que l'espace de stockage devient insuffisant sur le dispositif de stockage par défaut ou que la limite maximale de la base de données temporaire est atteinte, l'application échoue.

Les opérations suivantes entraînent la croissance de la base de données temporaire, notamment lorsqu'un groupe d'opérations sont incluses dans une seule transaction explicite :

  • Instructions UPDATE et DELETE qui affectent de nombreuses données.

  • Opérations de tri. Le tri ne requiert pas nécessairement l'utilisation de la base de données temporaire si un index satisfait celui-ci. Certaines opérations de tri peuvent créer des fichiers temporaires supplémentaires pour les tampons de tri temporaires. Ces fichiers sont différents de la base de données temporaire. Il n'existe qu'une seule base de données temporaire pour chaque base de données, alors qu'il peut exister un nombre quelconque de fichiers de tampons de tri temporaires.

Pour plus d'informations sur les transactions explicites, consultez Types de transactions.

Pour empêcher la croissance des fichiers de base de données volumineux au-delà des limites de stockage du dispositif, stockez les bases de données sur une carte de stockage plutôt que dans la mémoire vive (RAM) interne.