เหตุใดการเพิ่มผู้ใช้ SQL Server ใน“ ดำเนินการบำรุงรักษาโวลุ่ม” จะช่วยเพิ่มความเร็วในการปรับขนาดฐานข้อมูลได้มาก?


17

ถ้าฉันต้องการสร้างฐานข้อมูล 5GB ด้วย

CREATE DATABASE [test]
 CONTAINMENT = NONE
 ON  PRIMARY 
( NAME = N'test', FILENAME = N'E:\2012\test.mdf' , SIZE = 5529600KB , FILEGROWTH = 1024KB )
 LOG ON 
( NAME = N'test_log', FILENAME = N'E:\2012\test_log.ldf' , SIZE = 1024KB , FILEGROWTH = 10%)

ใช้เวลา1 นาทีบน SSD ของฉัน

แต่เมื่อฉันเพิ่มผู้ใช้ SQL Server ไป Perform volume maintenance tasks

ป้อนคำอธิบายรูปภาพที่นี่

จะใช้เวลาเพียง1-2 วินาที

ทำไมถึงเป็นอย่างนั้น? บางคนสามารถอธิบายให้ฉันฟังได้ว่าอะไรคือสาเหตุของสิ่งนี้


4
downvoters ช่วยอธิบายได้ไหมว่าทำไม downvote ดูเหมือนว่าเป็นคำถามที่ดีสำหรับฉัน
Thomas Stringer

คำตอบ:


26

นั่นเพราะทันทีไฟล์เริ่มต้น กล่าวโดยย่อ SQL Server สามารถใช้สิทธิพิเศษนี้สำหรับไฟล์ข้อมูลฐานข้อมูล (ไม่ใช่ไฟล์บันทึกธุรกรรม) สิ่งนี้หมายความว่า SQL Server ไม่จำเป็นต้องเป็นศูนย์ไฟล์ข้อมูลเมื่อเริ่มต้น

หากไม่มีสิทธิ์ "ดำเนินการบำรุงรักษาโวลุ่ม"ให้กับบัญชี SQL Service เมื่อสร้างฐานข้อมูล SQL Server จะต้องไม่มี "test.mdf" และ "test_log.ldf" เป็นศูนย์

ด้วยการตั้งค่าสิทธิ์การใช้งาน "ดำเนินการบำรุงรักษาโวลุ่ม" SQL Server จำเป็นต้องเป็นศูนย์ "test_log.ldf" เท่านั้น ค่าใช้จ่ายน้อยลงอย่างมีนัยสำคัญดังนั้นจึงลดระยะเวลาCREATE DATABASEในการทดสอบของคุณ

การอ้างอิง
การเปิดใช้งานการเริ่มต้นไฟล์ได้ทันทีอะไรและทำไมการเริ่มต้น
ทันที - อะไรทำไมและอย่างไร


ตะเข็บที่เป็นคุณสมบัตินี้ยอดเยี่ยม แต่ทำไมค่าเริ่มต้นสำหรับมันถึงปิด?
ahmed abdelqader

1

สิ่งนี้จะไม่ส่งผลกระทบต่อไฟล์. ldf (ไฟล์บันทึก) อย่างน้อยไม่เป็นไปตามบทความ MS

ทำไมมัน ความเร็ว

ทำไมไม่ทำอย่างนั้น? ความเสี่ยงด้านความปลอดภัยที่เป็นไปได้ บางคนอาจแฮ็กเข้ากล่องของคุณและอาจอ่านพื้นที่หน่วยความจำที่ไม่เป็นศูนย์และเรียกข้อมูลนั้น ความเสี่ยงเล็กน้อย แต่ก็ยังมีความเสี่ยงอยู่ นี่คือสาเหตุที่ไม่ได้เปิดใช้งานตามค่าเริ่มต้น

คำอธิบายโดยละเอียด: ทำอย่างไรและทำไมต้องเปิดใช้งานการเริ่มต้นไฟล์ทันที


หมายเหตุถึงผู้อ่าน: หากคุณกังวลเกี่ยวกับผู้คนที่แฮ็คข้อมูลเข้าสู่เซิร์ฟเวอร์ของคุณและอ่านข้อมูลเก่าจากไฟล์ที่ถูกลบการปล่อยให้ IFI ออกอาจมีประโยชน์ แต่แทบจะไม่เพียงพอเลย และหากคุณมีซอฟต์แวร์ที่เขียนทับไฟล์ที่ถูกลบไปแล้วคุณอาจจะเปิดใช้ IFI ได้เพราะซอฟต์แวร์นั้นควรจะมีพื้นที่ว่างเหลืออยู่แล้ว
RDFozz

ตอนนี้มีช่องทำเครื่องหมายระหว่างการติดตั้ง (SQL 2016 เป็นต้นไป) เพื่อให้สิทธิ์นี้แก่บัญชีบริการ SQL Server ดังนั้นฉันคิดว่า MS ค่อนข้างผ่อนคลายบนหน้าการรักษาความปลอดภัยเช่นกัน
Gareth Lyons
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.