Développement d’une base de données

Par défaut, SQL Server étend automatiquement une base de données en fonction des paramètres de croissance définis lors de la création de la base de données. Rien ne vous empêche, par ailleurs, d'agrandir une base de données manuellement, en allouant de l'espace supplémentaire à un fichier de base de données existant, ou en créant un nouveau fichier. Il vous faut accroître l'espace des données ou du journal des transactions si les fichiers existants atteignent leurs tailles maximales. Si une base de données a déjà épuisé tout l'espace qui lui était alloué et qu'elle n'est pas configurée pour permettre l'étendue automatique, l'erreur 1105 est générée. Cela peut notamment se produire si la fonction de croissance automatique de la base de données n'est pas activée ou si vous ne disposez pas de suffisamment d'espace disque.

Lorsque vous agrandissez une base de données, vous devez augmenter la taille de la base de données d'au moins 1 Mo. En cas d'extension d'une base de données, le nouvel espace est immédiatement mis à la disposition du fichier de données ou du fichier journal des transactions, en fonction du fichier qui a été étendu. Lorsque vous développez une base de données, vous devez préciser la taille maximale que le fichier peut atteindre. Ainsi, le fichier ne pourra croître jusqu'à épuisement de l'espace disque. Pour indiquer la taille maximale du fichier, utilisez le paramètre MAXSIZE de l'instruction ALTER DATABASE ou l'option Restreindre la croissance des fichiers (Mo) si vous étendez la base de données à l'aide de la boîte de dialogue Propriétés de SQL Server Management Studio. La procédure est identique pour étendre la base de données et augmenter l'espace attribué au journal des transactions.

Si l'étendue automatique du journal des transactions n'est pas activée, le journal des transactions risque de manquer d'espace si certains types d'opérations sont réalisés dans la base de données. Par exemple, si le modèle de récupération de la base de données est défini sur FULL, l'exécution d'opérations en bloc à grande échelle, telles qu'une importation en bloc ou une création d'index, peut entraîner un remplissage rapide du journal des transactions. Outre l'augmentation de la taille du journal des transactions, le fichier journal peut être tronqué. La troncation du journal a pour effet de purger le fichier de transactions inactives validées et le moteur de base de données SQL Server peut alors réutiliser la partie inutilisée du journal des transactions. La cause et le moment de la troncation dépendent du modèle de récupération de la base de données. Pour plus d'informations sur la troncation du journal des transactions, consultez Troncation du journal des transactions.

Extension de tempdb

Par défaut, la base de données tempdb croît automatiquement en fonction des besoins, puisque le paramètre MAXSIZE des fichiers a la valeur UNLIMITED. Par conséquent, tempdb peut continuer de croître jusqu'à épuisement de l'espace sur le disque où elle se trouve.

Bien que cela ne soit pas recommandé, il est possible d'empêcher la croissance illimitée de tempdb en définissant le paramètre MAXSIZE de tempdb. La limitation de la taille de tempdb peut entraîner un espace disque insuffisant pour la base de données. Il peut s'ensuivre de conséquentes interruptions dans votre environnement de production et une impossibilité pour les applications en cours d'achever leurs opérations. Inversement, si une taille maximale (MAXSIZE) a été définie pour tempdb et que vous voulez augmenter la taille de tempdb, procédez de la manière suivante :

  • Augmentez la taille des fichiers dans le groupe de fichiers par défaut actuellement utilisé par tempdb.

  • Ajoutez un nouveau fichier au groupe de fichiers par défaut.

  • Activez l'extension automatique des fichiers utilisés par tempdb.

    Important

    tempdb ne peut pas utiliser des groupes de fichiers définis par l'utilisateur.

Pour plus d'informations, consultez Base de données tempdb.

Pour augmenter la taille d'une base de données

Pour modifier l'emplacement physique d'une base de données