Ich möchte eine neue Datenbank mit einer 200- .mdf
GB- Datendatei ( ) und einer 50-GB-Protokolldatei ( .ldf
) erstellen .
Aber es ist sehr langsam (es ist ungefähr 15 Minuten und hat noch nicht erstellt). und es ist sehr zeitaufwändig. Ist das normal? Wenn ja, was macht es, das braucht Zeit? Kann ich die Erstellungsgeschwindigkeit erhöhen?
Ich verwende SQL Server 2008 R2, Windows Server 2008R2, 16 GB RAM (das habe ich auf 12 GB in ssms beschränkt) und Core i7 Cpu
sql-server
Mehrdad Kamelzadeh
quelle
quelle
Antworten:
Sofern Sie nicht die sofortige Dateiinitialisierung verwenden , muss SQL Server alle Sektoren für die Dateien auf Null setzen. Dies ist ein sehr zeitaufwändiger Vorgang, insbesondere für 250 GB (Daten + Protokoll). Um die Arbeit zu beschleunigen, aktivieren Sie diese Funktion, und SQL Server setzt den Speicherplatz für die Datendateien nicht auf Null.
Bitte beachten Sie, dass SQL Server die Protokolldatei immer auf Null setzt , sodass Sie dadurch immer noch eingeschränkt werden. Eine weitere Referenz für die Initialisierung von Protokolldateien
quelle
zero out all sectors
und warum setzt SQL die Protokolldatei immer auf Null? Was ist der Vorteil davon?Wenn Sie ausführen,
secpol.msc
wie lautet der Wert für Lokale Richtlinien, Zuweisung von BenutzerrechtenPerform Volume Maintenance Tasks
?Ich gehe an dieser Stelle davon aus, dass das SQL Server-Dienstkonto nicht über dieses Recht verfügt und daher das MDF und das LDF auf Null setzt. Ich kann nicht umgehen, dass die LDF auf Null gesetzt wird, aber Sie können sie für die MDF überspringen.
Referenz - http://timradney.com/2012/05/30/instant-file-initialization-for-sql-server-performance/
quelle