MS SQL Server - สถาปัตยกรรม

เราได้จำแนกสถาปัตยกรรมของ SQL Server เป็นส่วนต่างๆดังต่อไปนี้เพื่อให้เข้าใจง่าย -

  • สถาปัตยกรรมทั่วไป
  • สถาปัตยกรรมหน่วยความจำ
  • สถาปัตยกรรมไฟล์ข้อมูล
  • สถาปัตยกรรมไฟล์บันทึก

สถาปัตยกรรมทั่วไป

Client - เมื่อคำขอเริ่มต้น

Query - แบบสอบถาม SQL ซึ่งเป็นภาษาระดับสูง

Logical Units - คำหลักนิพจน์และตัวดำเนินการ ฯลฯ

N/W Packets - รหัสที่เกี่ยวข้องกับเครือข่าย

Protocols - ใน SQL Server เรามี 4 โปรโตคอล

  • หน่วยความจำที่ใช้ร่วมกัน (สำหรับการเชื่อมต่อภายในและวัตถุประสงค์ในการแก้ไขปัญหา)

  • ท่อที่มีชื่อ (สำหรับการเชื่อมต่อที่อยู่ในการเชื่อมต่อ LAN)

  • TCP / IP (สำหรับการเชื่อมต่อที่อยู่ในการเชื่อมต่อ WAN)

  • VIA-Virtual Interface Adapter (ต้องใช้ฮาร์ดแวร์พิเศษในการตั้งค่าโดยผู้ขายและเลิกใช้งานจากเวอร์ชัน SQL 2012 ด้วย)

Server - ที่ติดตั้งบริการ SQL และฐานข้อมูลอยู่

Relational Engine- นี่คือที่ที่จะดำเนินการจริง ประกอบด้วยตัวแยกวิเคราะห์แบบสอบถามเครื่องมือเพิ่มประสิทธิภาพการค้นหาและตัวดำเนินการสืบค้น

Query Parser (Command Parser) and Compiler (Translator) - สิ่งนี้จะตรวจสอบไวยากรณ์ของแบบสอบถามและจะแปลงแบบสอบถามเป็นภาษาเครื่อง

Query Optimizer - จะเตรียมแผนการดำเนินการเป็นผลลัพธ์โดยใช้แบบสอบถามสถิติและโครงสร้าง Algebrizer เป็นอินพุต

Execution Plan - เป็นเหมือนแผนงานซึ่งมีลำดับขั้นตอนทั้งหมดที่จะดำเนินการเป็นส่วนหนึ่งของการดำเนินการสืบค้น

Query Executor - นี่คือที่ที่จะดำเนินการสืบค้นทีละขั้นตอนด้วยความช่วยเหลือของแผนการดำเนินการและจะติดต่อเครื่องมือจัดเก็บข้อมูล

Storage Engine - มีหน้าที่จัดเก็บและดึงข้อมูลในระบบจัดเก็บข้อมูล (ดิสก์, SAN, ฯลฯ ), การจัดการข้อมูล, การล็อกและการจัดการธุรกรรม

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

Checkpoint Process- Checkpoint เป็นกระบวนการภายในที่เขียนเพจสกปรกทั้งหมด (หน้าที่แก้ไข) จาก Buffer Cache ไปยัง Physical disk นอกจากนี้ยังเขียนบันทึกบันทึกจากบัฟเฟอร์บันทึกไปยังไฟล์ฟิสิคัล การเขียนเพจสกปรกจากบัฟเฟอร์แคชไปยังไฟล์ข้อมูลเรียกอีกอย่างว่าการแข็งตัวของเพจสกปรก

เป็นกระบวนการเฉพาะและทำงานโดยอัตโนมัติโดย SQL Server ในช่วงเวลาที่กำหนด SQL Server รันกระบวนการตรวจสอบสำหรับแต่ละฐานข้อมูลทีละรายการ Checkpoint ช่วยลดเวลาในการกู้คืนสำหรับ SQL Server ในกรณีที่มีการปิดระบบโดยไม่คาดคิดหรือระบบขัดข้อง \ Failure

จุดตรวจใน SQL Server

ใน SQL Server 2012 มีสี่ประเภท checkpoints -

  • Automatic - นี่คือจุดตรวจที่พบบ่อยที่สุดซึ่งทำงานเป็นกระบวนการในเบื้องหลังเพื่อให้แน่ใจว่าฐานข้อมูล SQL Server สามารถกู้คืนได้ในระยะเวลาที่กำหนดโดย Recovery Interval - Server Configuration Option

  • Indirect- นี่เป็นสิ่งใหม่ใน SQL Server 2012 นอกจากนี้ยังทำงานในพื้นหลัง แต่เพื่อให้เป็นไปตามเวลาการกู้คืนเป้าหมายที่ผู้ใช้ระบุสำหรับฐานข้อมูลเฉพาะที่มีการกำหนดค่าตัวเลือก เมื่อเลือก Target_Recovery_Time สำหรับฐานข้อมูลที่กำหนดแล้วสิ่งนี้จะแทนที่ช่วงการกู้คืนที่ระบุไว้สำหรับเซิร์ฟเวอร์และหลีกเลี่ยงจุดตรวจอัตโนมัติบนฐานข้อมูลดังกล่าว

  • Manual- คำสั่งนี้ทำงานเหมือนกับคำสั่ง T-SQL อื่น ๆ เมื่อคุณออกคำสั่งจุดตรวจมันจะทำงานจนเสร็จสิ้น จุดตรวจด้วยตนเองทำงานสำหรับฐานข้อมูลปัจจุบันของคุณเท่านั้น คุณยังสามารถระบุ Checkpoint_Duration ซึ่งเป็นทางเลือก - ระยะเวลานี้ระบุเวลาที่คุณต้องการให้จุดตรวจของคุณเสร็จสมบูรณ์

  • Internal- ในฐานะผู้ใช้คุณไม่สามารถควบคุมจุดตรวจภายในได้ ออกในการดำเนินการเฉพาะเช่น

    • การปิดระบบจะเริ่มต้นการดำเนินการจุดตรวจบนฐานข้อมูลทั้งหมดยกเว้นเมื่อการปิดระบบไม่สะอาด (ปิดด้วย nowait)

    • หากโมเดลการกู้คืนเปลี่ยนจาก Full \ Bulk-logged เป็น Simple

    • ในขณะที่ทำการสำรองฐานข้อมูล

    • หากฐานข้อมูลของคุณอยู่ในรูปแบบการกู้คืนอย่างง่ายกระบวนการตรวจสอบจะดำเนินการโดยอัตโนมัติเมื่อบันทึกเต็ม 70% หรือตามช่วงเวลาการกู้คืนตัวเลือกเซิร์ฟเวอร์

    • คำสั่งแก้ไขฐานข้อมูลเพื่อเพิ่มหรือลบไฟล์ data \ log ยังเริ่มจุดตรวจสอบ

    • นอกจากนี้ Checkpoint จะเกิดขึ้นเมื่อโมเดลการกู้คืนของ DB ถูกบันทึกเป็นกลุ่มและมีการดำเนินการบันทึกน้อยที่สุด

    • การสร้าง DB Snapshot

  • Lazy Writer Process- ผู้เขียนขี้เกียจจะดันหน้าสกปรกไปยังดิสก์ด้วยเหตุผลที่แตกต่างไปจากเดิมอย่างสิ้นเชิงเนื่องจากต้องเพิ่มหน่วยความจำในบัฟเฟอร์พูล สิ่งนี้เกิดขึ้นเมื่อเซิร์ฟเวอร์ SQL อยู่ภายใต้แรงกดดันของหน่วยความจำ เท่าที่ฉันทราบสิ่งนี้ถูกควบคุมโดยกระบวนการภายในและไม่มีการตั้งค่าใด ๆ

เซิร์ฟเวอร์ SQL ตรวจสอบการใช้หน่วยความจำอย่างต่อเนื่องเพื่อประเมินการช่วงชิงทรัพยากร (หรือความพร้อมใช้งาน) หน้าที่ของมันคือตรวจสอบให้แน่ใจว่ามีพื้นที่ว่างจำนวนหนึ่งพร้อมใช้งานตลอดเวลา เป็นส่วนหนึ่งของกระบวนการนี้เมื่อสังเกตเห็นการแย่งชิงทรัพยากรดังกล่าวจะทำให้ Lazy Writer เพิ่มพื้นที่ว่างบางหน้าในหน่วยความจำโดยการเขียนเพจสกปรกลงในดิสก์ ใช้อัลกอริทึม Least Recent Used (LRU) เพื่อตัดสินใจว่าจะล้างหน้าใดลงในดิสก์

หาก Lazy Writer ทำงานอยู่ตลอดเวลาอาจบ่งบอกถึงปัญหาคอขวดของหน่วยความจำ

สถาปัตยกรรมหน่วยความจำ

ต่อไปนี้เป็นคุณสมบัติเด่นบางประการของสถาปัตยกรรมหน่วยความจำ

  • เป้าหมายการออกแบบหลักประการหนึ่งของซอฟต์แวร์ฐานข้อมูลทั้งหมดคือการลดขนาดดิสก์ I / O เนื่องจากการอ่านและเขียนดิสก์เป็นหนึ่งในการดำเนินการที่ใช้ทรัพยากรมากที่สุด

  • หน่วยความจำใน windows สามารถเรียกได้ด้วย Virtual Address Space ซึ่งแชร์โดยโหมด Kernel (โหมด OS) และโหมดผู้ใช้ (แอปพลิเคชันเช่น SQL Server)

  • "พื้นที่ที่อยู่ของผู้ใช้" เซิร์ฟเวอร์ SQL แบ่งออกเป็นสองภูมิภาค: MemToLeave และ Buffer Pool

  • ขนาดของ MemToLeave (MTL) และ Buffer Pool (BPool) ถูกกำหนดโดย SQL Server ระหว่างการเริ่มต้น

  • Buffer managementเป็นองค์ประกอบหลักในการบรรลุ I / O ที่มีประสิทธิภาพสูง คอมโพเนนต์การจัดการบัฟเฟอร์ประกอบด้วยสองกลไก: ตัวจัดการบัฟเฟอร์เพื่อเข้าถึงและอัพเดตเพจฐานข้อมูลและพูลบัฟเฟอร์เพื่อลดไฟล์ฐานข้อมูล I / O

  • บัฟเฟอร์พูลยังแบ่งออกเป็นหลายส่วน สิ่งที่สำคัญที่สุดคือบัฟเฟอร์แคช (เรียกอีกอย่างว่าแคชข้อมูล) และแคชโพรซีเดอร์Buffer cacheเก็บเพจข้อมูลไว้ในหน่วยความจำเพื่อให้สามารถดึงข้อมูลที่เข้าถึงบ่อยจากแคชได้ อีกทางเลือกหนึ่งคือการอ่านหน้าข้อมูลจากดิสก์ การอ่านหน้าข้อมูลจากแคชช่วยเพิ่มประสิทธิภาพโดยการลดจำนวนการดำเนินการ I / O ที่ต้องการซึ่งช้ากว่าการดึงข้อมูลจากหน่วยความจำโดยเนื้อแท้

  • Procedure cacheเก็บรักษาขั้นตอนการจัดเก็บและแผนการดำเนินการสืบค้นเพื่อลดจำนวนครั้งที่ต้องสร้างแผนแบบสอบถาม คุณสามารถค้นหาข้อมูลเกี่ยวกับขนาดและกิจกรรมภายในแคชโพรซีเดอร์โดยใช้คำสั่ง DBCC PROCCACHE

ส่วนอื่น ๆ ของบัฟเฟอร์พูล ได้แก่ -

  • System level data structures - เก็บข้อมูลระดับอินสแตนซ์ของ SQL Server เกี่ยวกับฐานข้อมูลและล็อก

  • Log cache - สงวนไว้สำหรับการอ่านและเขียนหน้าบันทึกธุรกรรม

  • Connection context- การเชื่อมต่อกับอินสแตนซ์แต่ละครั้งจะมีพื้นที่หน่วยความจำขนาดเล็กเพื่อบันทึกสถานะปัจจุบันของการเชื่อมต่อ ข้อมูลนี้รวมถึงขั้นตอนการจัดเก็บและพารามิเตอร์ฟังก์ชันที่ผู้ใช้กำหนดตำแหน่งเคอร์เซอร์และอื่น ๆ

  • Stack space - Windows จัดสรรพื้นที่สแต็กสำหรับแต่ละเธรดที่เริ่มต้นโดย SQL Server

สถาปัตยกรรมไฟล์ข้อมูล

สถาปัตยกรรมไฟล์ข้อมูลมีส่วนประกอบดังต่อไปนี้ -

กลุ่มไฟล์

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

มีกลุ่มไฟล์สองประเภทใน SQL Server หลักและผู้ใช้กำหนด กลุ่มไฟล์หลักประกอบด้วยไฟล์ข้อมูลหลักและไฟล์อื่น ๆ ที่ไม่ได้กำหนดให้กับกลุ่มไฟล์อื่นโดยเฉพาะ เพจทั้งหมดสำหรับตารางระบบถูกจัดสรรในกลุ่มไฟล์หลัก กลุ่มไฟล์ที่ผู้ใช้กำหนดคือกลุ่มไฟล์ใด ๆ ที่ระบุโดยใช้คีย์เวิร์ดกลุ่มไฟล์ในการสร้างฐานข้อมูลหรือแก้ไขคำสั่งฐานข้อมูล

กลุ่มไฟล์หนึ่งกลุ่มในแต่ละฐานข้อมูลทำงานเป็นกลุ่มไฟล์เริ่มต้น เมื่อ SQL Server จัดสรรเพจให้กับตารางหรือดัชนีที่ไม่มีการระบุกลุ่มไฟล์เมื่อสร้างขึ้นเพจจะถูกจัดสรรจากกลุ่มไฟล์ดีฟอลต์ ในการเปลี่ยนกลุ่มไฟล์เริ่มต้นจากกลุ่มไฟล์หนึ่งไปยังกลุ่มไฟล์อื่นควรมี db_owner fixed db role

โดยค่าเริ่มต้นกลุ่มไฟล์หลักคือกลุ่มไฟล์เริ่มต้น ผู้ใช้ควรมีบทบาทฐานข้อมูลคงที่ db_owner เพื่อสำรองไฟล์และกลุ่มไฟล์ทีละไฟล์

ไฟล์

ฐานข้อมูลมีไฟล์สามประเภท ได้แก่ ไฟล์ข้อมูลหลักไฟล์ข้อมูลรองและไฟล์บันทึก ไฟล์ข้อมูลหลักเป็นจุดเริ่มต้นของฐานข้อมูลและชี้ไปที่ไฟล์อื่น ๆ ในฐานข้อมูล

ทุกฐานข้อมูลมีไฟล์ข้อมูลหลักหนึ่งไฟล์ เราสามารถให้นามสกุลใดก็ได้สำหรับไฟล์ข้อมูลหลัก แต่ส่วนขยายที่แนะนำคือ.mdf. ไฟล์ข้อมูลทุติยภูมิคือไฟล์อื่นที่ไม่ใช่ไฟล์ข้อมูลหลักในฐานข้อมูลนั้น ฐานข้อมูลบางแห่งอาจมีไฟล์ข้อมูลทุติยภูมิหลายไฟล์ ฐานข้อมูลบางแห่งอาจไม่มีไฟล์ข้อมูลทุติยภูมิแม้แต่ไฟล์เดียว ส่วนขยายที่แนะนำสำหรับไฟล์ข้อมูลทุติยภูมิคือ.ndf.

ล็อกไฟล์เก็บข้อมูลบันทึกทั้งหมดที่ใช้ในการกู้คืนฐานข้อมูล ฐานข้อมูลต้องมีไฟล์บันทึกอย่างน้อยหนึ่งไฟล์ เราสามารถมีไฟล์บันทึกหลายไฟล์สำหรับฐานข้อมูลเดียว ส่วนขยายที่แนะนำสำหรับล็อกไฟล์คือ.ldf.

ตำแหน่งของไฟล์ทั้งหมดในฐานข้อมูลจะถูกบันทึกทั้งในฐานข้อมูลหลักและไฟล์หลักสำหรับฐานข้อมูล โดยส่วนใหญ่แล้วโปรแกรมฐานข้อมูลจะใช้ตำแหน่งไฟล์จากฐานข้อมูลหลัก

ไฟล์มีสองชื่อ - ตรรกะและกายภาพ ชื่อตรรกะใช้เพื่ออ้างถึงไฟล์ในคำสั่ง T-SQL ทั้งหมด ชื่อจริงคือ OS_file_name ซึ่งต้องเป็นไปตามกฎของ OS ข้อมูลและไฟล์บันทึกสามารถวางบนระบบไฟล์ FAT หรือ NTFS แต่ไม่สามารถวางบนระบบไฟล์บีบอัดได้ สามารถมีไฟล์ได้มากถึง 32,767 ไฟล์ในฐานข้อมูลเดียว

ขอบเขต

Extents เป็นหน่วยพื้นฐานที่จัดสรรพื้นที่ให้กับตารางและดัชนี ขอบเขตคือ 8 หน้าติดกันหรือ 64KB SQL Server มี Extents สองประเภท - Uniform และ Mixed ส่วนขยายที่เหมือนกันประกอบด้วยวัตถุชิ้นเดียวเท่านั้น ส่วนขยายแบบผสมจะใช้ร่วมกันได้ถึงแปดวัตถุ

หน้า

เป็นหน่วยพื้นฐานของการจัดเก็บข้อมูลใน MS SQL Server ขนาดของหน้าคือ 8KB จุดเริ่มต้นของแต่ละเพจคือส่วนหัว 96 ไบต์ที่ใช้ในการจัดเก็บข้อมูลระบบเช่นประเภทของเพจจำนวนพื้นที่ว่างบนเพจและ id อ็อบเจ็กต์ของอ็อบเจ็กต์ที่เป็นเจ้าของเพจ เพจข้อมูลมี 9 ประเภทใน SQL Server

  • Data - แถวข้อมูลที่มีข้อมูลทั้งหมดยกเว้นข้อมูลข้อความ ntext และรูปภาพ

  • Index - รายการดัชนี

  • Tex\Image - ข้อมูลข้อความรูปภาพและ ntext

  • GAM - ข้อมูลเกี่ยวกับขอบเขตที่จัดสรร

  • SGAM - ข้อมูลเกี่ยวกับขอบเขตที่จัดสรรในระดับระบบ

  • Page Free Space (PFS) - ข้อมูลเกี่ยวกับพื้นที่ว่างบนหน้า

  • Index Allocation Map (IAM) - ข้อมูลเกี่ยวกับขอบเขตที่ใช้โดยตารางหรือดัชนี

  • Bulk Changed Map (BCM) - ข้อมูลเกี่ยวกับขอบเขตที่แก้ไขโดยการดำเนินการจำนวนมากตั้งแต่คำสั่งบันทึกการสำรองข้อมูลล่าสุด

  • Differential Changed Map (DCM) - ข้อมูลเกี่ยวกับขอบเขตที่เปลี่ยนแปลงไปตั้งแต่คำสั่งฐานข้อมูลสำรองล่าสุด

สถาปัตยกรรมไฟล์บันทึก

บันทึกธุรกรรมของเซิร์ฟเวอร์ SQL ดำเนินการอย่างมีเหตุผลราวกับว่าบันทึกธุรกรรมเป็นสตริงของระเบียนบันทึก บันทึกแต่ละรายการจะถูกระบุโดย Log Sequence Number (LSN) แต่ละระเบียนบันทึกมี ID ของธุรกรรมที่เป็นสมาชิก

บันทึกบันทึกสำหรับการแก้ไขข้อมูลจะบันทึกการดำเนินการทางตรรกะที่ดำเนินการหรือบันทึกภาพก่อนและหลังของข้อมูลที่แก้ไข ภาพก่อนหน้าคือสำเนาของข้อมูลก่อนที่จะดำเนินการ ภาพหลังคือสำเนาของข้อมูลหลังจากดำเนินการแล้ว

ขั้นตอนในการกู้คืนการดำเนินการขึ้นอยู่กับประเภทของบันทึกบันทึก -

  • บันทึกการดำเนินการทางตรรกะแล้ว
    • เมื่อต้องการหมุนการดำเนินการทางตรรกะไปข้างหน้าการดำเนินการจะดำเนินการอีกครั้ง
    • ในการย้อนการดำเนินการทางตรรกะกลับการดำเนินการตรรกะย้อนกลับจะดำเนินการ
  • บันทึกภาพก่อนและหลัง
    • ในการเลื่อนการดำเนินการไปข้างหน้าภาพหลังจะถูกนำไปใช้
    • หากต้องการย้อนการดำเนินการภาพก่อนจะถูกนำไปใช้

การดำเนินการประเภทต่างๆจะถูกบันทึกไว้ในบันทึกธุรกรรม การดำเนินการเหล่านี้ ได้แก่ -

  • จุดเริ่มต้นและจุดสิ้นสุดของแต่ละธุรกรรม

  • ทุกการแก้ไขข้อมูล (แทรกอัปเดตหรือลบ) ซึ่งรวมถึงการเปลี่ยนแปลงตามโพรซีเดอร์ที่ระบบจัดเก็บหรือคำสั่ง data definition language (DDL) ไปยังตารางใด ๆ

  • ทุกขอบเขตและการจัดสรรหน้าหรือการจัดสรร

  • การสร้างหรือวางตารางหรือดัชนี

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

ส่วนของไฟล์บันทึกจากบันทึกบันทึกแรกที่ต้องมีอยู่สำหรับการย้อนกลับทั้งฐานข้อมูลที่ประสบความสำเร็จไปยังบันทึกบันทึกที่เขียนล่าสุดเรียกว่าส่วนที่ใช้งานอยู่ของบันทึกหรือบันทึกที่ใช้งานอยู่ นี่คือส่วนของบันทึกที่จำเป็นสำหรับการกู้คืนฐานข้อมูลทั้งหมด ไม่สามารถตัดทอนส่วนใดส่วนหนึ่งของบันทึกที่ใช้งานอยู่ได้ LSN ของบันทึกบันทึกแรกนี้เรียกว่า LSN การกู้คืนขั้นต่ำ (Min LSN)

SQL Server Database Engine แบ่งไฟล์บันทึกฟิสิคัลแต่ละไฟล์ภายในเป็นไฟล์บันทึกเสมือนจำนวนหนึ่ง ไฟล์บันทึกเสมือนไม่มีขนาดคงที่และไม่มีจำนวนไฟล์บันทึกเสมือนที่แน่นอนสำหรับไฟล์บันทึกทางกายภาพ

Database Engine จะเลือกขนาดของไฟล์บันทึกเสมือนแบบไดนามิกในขณะที่กำลังสร้างหรือขยายล็อกไฟล์ โปรแกรมฐานข้อมูลพยายามรักษาไฟล์เสมือนจำนวนเล็กน้อย ขนาดหรือจำนวนของล็อกไฟล์เสมือนไม่สามารถกำหนดค่าหรือตั้งค่าโดยผู้ดูแลระบบ ไฟล์บันทึกเสมือนในเวลาเดียวที่มีผลต่อประสิทธิภาพของระบบคือถ้าไฟล์บันทึกทางกายภาพถูกกำหนดโดยขนาดเล็กและค่า growth_increment

ค่าขนาดคือขนาดเริ่มต้นสำหรับล็อกไฟล์และค่า growth_increment คือจำนวนช่องว่างที่เพิ่มให้กับไฟล์ทุกครั้งที่ต้องใช้พื้นที่ใหม่ หากไฟล์บันทึกมีขนาดใหญ่ขึ้นเนื่องจากมีการเพิ่มทีละน้อยไฟล์บันทึกเหล่านั้นจะมีไฟล์บันทึกเสมือนจำนวนมาก สิ่งนี้สามารถชะลอการเริ่มต้นฐานข้อมูลและยังบันทึกการสำรองข้อมูลและเรียกคืนการดำเนินการ

เราขอแนะนำให้คุณกำหนดค่าขนาดไฟล์บันทึกให้ใกล้เคียงกับขนาดสุดท้ายที่ต้องการและมีค่า growth_increment ที่ค่อนข้างใหญ่ SQL Server ใช้บันทึกการเขียนล่วงหน้า (WAL) ซึ่งรับประกันว่าจะไม่มีการเขียนการแก้ไขข้อมูลลงในดิสก์ก่อนที่บันทึกบันทึกที่เกี่ยวข้องจะถูกเขียนลงในดิสก์ สิ่งนี้รักษาคุณสมบัติ ACID สำหรับธุรกรรม