2017-10-12 1 views
1

Serait apprécié si quelqu'un peut suggérer la bonne requête pour augmenter les données/taille du fichier journal si l'espace libre 20% de la taille actuelle?Augmenter la taille des données/fichier journal SQL avec l'emploi du temps

Besoin d'une requête SQL capable d'ajouter 30% de la taille actuelle des données/journaux si l'espace libre est inférieur à 20%.

J'ai cette requête pour identifier la taille actuelle

SELECT a.NAME, 
     a.FILENAME, 
     [FILE_SIZE(MB)] = convert(decimal(12,2), 
     round(a.size/128.000,2)), 
     [SPACE_USED(MB)] = convert(decimal(12,2), round(fileproperty(a.name,'SpaceUsed')/128.000,2)), 
     [FREE_SPACE(MB)] = convert(decimal(12,2), 
     round((a.size-fileproperty(a.name,'SpaceUsed'))/128.000,2)) , 
     [FREE_SPACE(%)] = convert(decimal(12,2), 
     (convert(decimal(12,2),round((a.size-fileproperty(a.name,'SpaceUsed'))/128.000,2))/convert(decimal(12,2),round(a.size/128.000,2)) * 100)) 
FROM dbo.sysfiles a 

Répondre

0

Vous pouvez facilement ajouter 30% de la taille actuelle à l'aide de l'accumulation dans l'option de croissance automatique.

enter image description here

enter image description here

Pourquoi vous avez besoin pour faire le travail SQL Server et d'augmenter la taille à l'avance? Laisse juste le moteur faire le travail. Si vous craignez que ces tâches soient lentes, vous pouvez vérifier Instant File Initialization. Quoi qu'il en soit, si vous voulez toujours faire cela par vous-même, avoir la taille actuelle, signifie que vous pouvez calculer le nouveau. Vous pouvez utiliser:

ALTER DATABASE [mydatabase] MODIFY FILE (NAME = N'mydatabase', SIZE = ...KB); 
ALTER DATABASE [mydatabase] MODIFY FILE (NAME = N'mydatabase_log', SIZE = ...KB);