Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> SQL Server

เรียนรู้เกี่ยวกับสถาปัตยกรรมของ MS SQL Server

ในบทความก่อนหน้านี้ คุณรู้อยู่แล้วสั้น ๆ เกี่ยวกับ SQL Server วิธีติดตั้ง SQL Server บนคอมพิวเตอร์ ในส่วนนี้ เราจะเรียนรู้เกี่ยวกับสถาปัตยกรรมของ SQL Server

เราจะแบ่งสถาปัตยกรรม SQL Server ออกเป็นส่วนๆ เพื่อให้เข้าใจง่ายขึ้น:

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

ตอนนี้เราจะพูดถึงรายละเอียดของสถาปัตยกรรม SQL Server แต่ละประเภทที่จัดประเภทไว้ด้านบน

เรียนรู้เกี่ยวกับสถาปัตยกรรมของ MS SQL Server

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

  1. ลูกค้า: สถานที่ที่ร้องขอ
  2. แบบสอบถาม: คำสั่ง SQL เป็นภาษาระดับสูง
  3. หน่วยตรรกะ: คำสำคัญ นิพจน์ ตัวดำเนินการ .
  4. แพ็กเก็ต N / W: รหัสที่เกี่ยวข้องกับเครือข่าย
  5. โปรโตคอล: ใน SQL Server เรามี 4 โปรโตคอล:
    1. หน่วยความจำที่ใช้ร่วมกัน:สำหรับการเชื่อมต่อภายในเครื่องและวัตถุประสงค์ในการแก้ปัญหา
    2. ตั้งชื่อไปป์:สำหรับการเชื่อมต่อบน LAN
    3. TCP / IP:สำหรับการเชื่อมต่อ WAN
    4. VIA-Virtual Interface Adapter:ข้อกำหนดด้านฮาร์ดแวร์พิเศษถูกกำหนดโดยผู้จำหน่ายและไม่ได้รับการสนับสนุนจากเวอร์ชัน SQL 2012
  6. เซิร์ฟเวอร์: ตำแหน่งที่ติดตั้ง SQL Services และมีฐานข้อมูล
  7. เครื่องมือเชิงสัมพันธ์: นี่คือที่ที่จะดำเนินการจริง ประกอบด้วยตัววิเคราะห์ Query เครื่องมือเพิ่มประสิทธิภาพ Query และรันไทม์ของ Query
  8. ตัวแยกวิเคราะห์ข้อความค้นหา (ตัวแยกคำสั่ง) และ คอมไพเลอร์ (นักแปล):เหล่านี้ ผู้ชายสองคนมีหน้าที่ตรวจสอบไวยากรณ์ของข้อความค้นหาและแปลงการสืบค้นเป็นภาษาของเครื่อง
  9. เครื่องมือเพิ่มประสิทธิภาพการค้นหา: โดยจะเตรียมผลลัพธ์เป็นแผนปฏิบัติการโดยนำข้อมูลเข้าเป็นแบบสอบถาม สถิติ และแผนผัง Algebrizer
  1. แผนปฏิบัติการ: เช่นเดียวกับแผนที่ถนน มีลำดับขั้นตอนที่เป็นส่วนหนึ่งของการดำเนินการค้นหา
  2. ตัวดำเนินการแบบสอบถาม: นี่คือที่ที่การสืบค้นจะดำเนินการทีละขั้นตอน ด้วยความช่วยเหลือของแผนการดำเนินการและตำแหน่งที่จะติดต่อกับ Storage Engine
  3. เครื่องมือจัดเก็บข้อมูล: รับผิดชอบในการจัดเก็บและเรียกข้อมูลในระบบจัดเก็บข้อมูล (ไดรฟ์, SAN, .) จัดการข้อมูล ล็อกและจัดการธุรกรรม
  4. SQL OS: ตั้งอยู่ระหว่างเครื่องโฮสต์ (Windows OS) และ SQL Server การดำเนินการทั้งหมดดำเนินการบนกลไกจัดการฐานข้อมูลที่ "ดูแล" โดย SQL OS SQL OS ให้บริการระบบปฏิบัติการที่หลากหลาย เช่น การจัดการหน่วยความจำด้วยบัฟเฟอร์พูล บันทึกบัฟเฟอร์ การตรวจจับการหยุดชะงัก การใช้โครงสร้างบล็อกและล็อค
  5. จุดตรวจ: Checkpoint เป็นกระบวนการภายใน โดยจะเขียนหน้าที่แก้ไขทั้งหมด (เรียกว่า Dirty Page) จากบัฟเฟอร์แคชไปยังฟิสิคัลไดรฟ์ นอกจากนี้ ยังบันทึกล็อกจาก Log Buffer ไปยังฟิสิคัลไฟล์ การบันทึกหน้าสกปรกลงในไดรฟ์เรียกอีกอย่างว่าการชุบแข็งของหน้าสกปรก
  6. ขี้เกียจเขียน: Lazy Writer จะผลัก Dirty Pages และฮาร์ดไดรฟ์ด้วยเหตุผลที่แตกต่างไปจากเดิมอย่างสิ้นเชิง ซึ่งก็คือการเพิ่มหน่วยความจำใน Buffer Pool สิ่งนี้เกิดขึ้นเมื่อ SQL Server มีหน่วยความจำไม่เพียงพอ กระบวนการนี้ควบคุมโดยกระบวนการภายในและไม่มีการตั้งค่าใดๆ

SQL Server ตรวจสอบการใช้หน่วยความจำอย่างต่อเนื่องเพื่อประเมินความพร้อมใช้งานของทรัพยากรและการแข่งขัน เพื่อให้มั่นใจว่าจะมีพื้นที่ว่างจำนวนหนึ่งอยู่เสมอ เมื่อตรวจพบความขัดแย้งของทรัพยากร มันจะทริกเกอร์ Lazy Writer ให้ย้าย Dirty Page ไปที่ไดรฟ์และเพิ่มหน่วยความจำ ใช้อัลกอริธึมที่ใช้ล่าสุด (LRU) เพื่อกำหนดว่าหน้าใดจะถูกผลักไปยังฮาร์ดไดรฟ์ หาก Lazy Writer ทำงานตลอดเวลา ก็สามารถสร้างคอขวดด้วยหน่วยความจำได้

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

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

  1. เป้าหมายการออกแบบพื้นฐานของซอฟต์แวร์ฐานข้อมูลทั้งหมดประการหนึ่งคือการลดขนาดดิสก์ I / O เนื่องจากกระบวนการอ่านและเขียนดิสก์เป็นการดำเนินการที่ต้องใช้ทรัพยากรมากที่สุดแห่งหนึ่ง
  2. หน่วยความจำภายในของ Windows สามารถเรียกได้ด้วย Virtual Address Space ซึ่งแชร์โดยโหมดเคอร์เนล (โหมด OS) และผู้ใช้ (แอปพลิเคชันเช่น SQL Server)
  3. พื้นที่ที่อยู่ผู้ใช้ของ SQL Server แบ่งออกเป็นสองส่วน:MemToLeave และ Buffer Pool
  4. ขนาดของ MemToLeave (MTL) และ Buffer Pool (BPool) ถูกกำหนดโดย SQL Server ระหว่างกระบวนการบู๊ต
  5. การจัดการบัฟเฟอร์เป็นองค์ประกอบที่สำคัญหากคุณต้องการบรรลุประสิทธิภาพ I/O ที่สูง ประกอบด้วยสองกลไก:Buffer Manager เพื่อเข้าถึงและอัปเดตฐานข้อมูลและหน้า Buffer Pool เพื่อตัดไฟล์ I / O ลงในฐานข้อมูล
  6. Buffer Pool แบ่งออกเป็นหลายส่วน ที่สำคัญที่สุดคือ Buffer Cache และ Procedure Cache แคชบัฟเฟอร์เก็บหน้าข้อมูลไว้ในหน่วยความจำเพื่อให้สามารถดึงข้อมูลที่เข้าถึงบ่อยออกจากแคชได้ กระบวนการเปลี่ยนจะอ่านหน้าข้อมูลจากไดรฟ์ การอ่านข้อมูลจากแคชช่วยเพิ่มประสิทธิภาพโดยการลดจำนวนการดำเนินการ I/O ซึ่งช้ากว่าการเข้าถึงข้อมูลจากหน่วยความจำ
  7. แคชของโพรซีเดอร์เก็บโพรซีเดอร์ที่เก็บไว้และแผนการดำเนินการเพื่อปรับจำนวนครั้งที่สร้างแผนการดำเนินการให้เหมาะสม คุณสามารถค้นหาข้อมูลเกี่ยวกับความจุและการดำเนินการในโพรซีเดอร์แคชได้โดยใช้คำสั่ง DBCC PROCCACHE
  8. ส่วนอื่นๆ ของ Buffer Pool ได้แก่:
    1. โครงสร้างข้อมูลระดับระบบ:ประกอบด้วยข้อมูลระดับอินสแตนซ์เกี่ยวกับฐานข้อมูลและการล็อก
    2. ล็อกแคช:ใช้สำหรับอ่านและเขียนหน้าธุรกรรมโดยเฉพาะ
    3. บริบทการเชื่อมต่อ:การเชื่อมต่อกับอินสแตนซ์แต่ละครั้งมีพื้นที่หน่วยความจำขนาดเล็กเพื่อบันทึกสถานะปัจจุบันของการเชื่อมต่อ ข้อมูลนี้รวมถึงขั้นตอนการจัดเก็บและพารามิเตอร์ฟังก์ชันที่ผู้ใช้กำหนดเอง ตำแหน่งเคอร์เซอร์ของเมาส์ และอื่นๆ
    4. Stack Space:Windows จัดสรรพื้นที่สแต็กสำหรับแต่ละเธรดที่ขึ้นต้นด้วย SQL Server

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

สถาปัตยกรรมนี้มีองค์ประกอบดังต่อไปนี้:

กลุ่มไฟล์:

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

มี File Group สองประเภทใน SQL Server เป็นแบบ Primary และ User-defined ไฟล์หลักประกอบด้วยไฟล์ข้อมูลหลักและไฟล์ใดๆ ที่ไม่ได้กำหนดให้กับกลุ่มไฟล์โดยเฉพาะ หน้าทั้งหมดสำหรับตารางระบบได้รับการจัดสรรในหลัก User-defined คือกลุ่มไฟล์ที่ผู้ใช้กำหนด ซึ่งระบุโดยใช้ file group คีย์เวิร์ดในคำสั่งสร้างฐานข้อมูลหรือลบฐานข้อมูล

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

Primary คือกลุ่มไฟล์เริ่มต้น ผู้ใช้จำเป็นต้องมีบทบาทฐานข้อมูลคงที่ db_owner เพื่อสำรองไฟล์และแต่ละกลุ่มไฟล์

ไฟล์

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

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

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

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

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

ขอบเขต

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

หน้า

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

  1. ข้อมูล:แถวข้อมูลที่มีข้อมูลทั้งหมดจากข้อความ ntext และรูปภาพ
  2. ดัชนี:รายการดัชนี
  3. TexImage:ข้อมูลของข้อความ ntext และรูปภาพ
  4. GAM:ข้อมูลเกี่ยวกับขอบเขตที่กำหนด
  5. SGAM:ข้อมูลเกี่ยวกับขอบเขตจะได้รับการจัดสรรที่ระดับระบบ
  6. Page Free Space (PFS):ข้อมูลเกี่ยวกับพื้นที่ว่างบนหน้าเว็บ
  7. Index Allocation Map (IAM):ข้อมูลเกี่ยวกับขอบเขตที่ใช้โดยตารางหรือดัชนี
  8. Bulk Changed Map (BCM):ข้อมูลขอบเขตมีการเปลี่ยนแปลงโดยการดำเนินการจำนวนมากจากคำสั่งสำรองข้อมูลล่าสุด
  9. Differential Changed Map (DCM):ข้อมูลเกี่ยวกับขอบเขตที่เปลี่ยนไปตั้งแต่คำสั่งสำรองฐานข้อมูลครั้งล่าสุด

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

บันทึกธุรกรรมบน SQL Server ทำงานอย่างถูกต้องเมื่อเป็นลำดับของเรกคอร์ดบันทึก บันทึกแต่ละรายการจะถูกระบุโดยหมายเลขลำดับของบันทึก (LSN) ซึ่งมี ID ของธุรกรรมที่เป็นของ

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

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

  1. บันทึกการทำงานเชิงตรรกะแล้ว
  2. หากต้องการไปยังการดำเนินการทางลอจิคัลก่อนหน้านี้ การดำเนินการจะถูกดำเนินการอีกครั้ง
  3. หากต้องการกลับไปที่การดำเนินการลอจิกด้านหลัง การดำเนินการลอจิกแบบย้อนกลับจะถูกดำเนินการ
  4. ภาพก่อนหน้าและภาพถัดไปจะถูกบันทึกไว้
  5. หากต้องการไปยังการดำเนินการก่อนหน้า รูปภาพต่อไปนี้จะถูกนำไปใช้
  6. หากต้องการกลับไปที่การดำเนินการต่อไปนี้ รูปภาพก่อนหน้าจะถูกนำไปใช้

บันทึกการดำเนินการต่างๆ ในบันทึกธุรกรรมแล้ว การดำเนินการต่อไปนี้จะสามารถใช้ได้ที่นั่น:

  1. เริ่มต้นและสิ้นสุดแต่ละธุรกรรม
  2. การแก้ไขข้อมูลทั้งหมด (แทรก อัปเดต ลบ) รวมถึงการเปลี่ยนแปลงขั้นตอนการจัดเก็บระบบหรือคำสั่งภาษาสำหรับคำจำกัดความของข้อมูล (DDL) ในตาราง รวมถึงตารางระบบด้วย
  3. ขอบเขตและการจัดสรรทั้งหมด การยกเลิกการจัดสรรหน้า
  4. สร้างหรือลบตารางและดัชนี

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

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

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

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

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

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

Algebrizer ใน SQL

ฉันต้องการพูดคุยเกี่ยวกับ Algebrizer สักหน่อย:Algebrizer เป็นกระบวนการที่อยู่ในกระบวนการดำเนินการค้นหา มันเริ่มทำงานหลังจาก Parser เมื่อ Query Parser พบการสืบค้นที่ถูกต้อง มันจะไปที่ Algebrizer และเริ่มงานของ Algebrizer:Algebrizer มีหน้าที่ตรวจสอบวัตถุและชื่อคอลัมน์ (ที่คุณระบุในแบบสอบถามหรือถูกอ้างอิงโดยแบบสอบถาม) ตัวอย่างเช่น ถ้าชื่อคอลัมน์เขียนผิดพลาดในแบบสอบถาม Algebrizer จะรับผิดชอบในการยืนยันและสร้างข้อผิดพลาด Algebrizer ยังระบุข้อมูลทุกประเภทที่กำลังประมวลผลในการสืบค้นที่กำหนด Algebrizer ตรวจสอบว่า GROUP BY และคอลัมน์ที่รวมกันถูกวางไว้ในตำแหน่งที่ถูกต้องหรือไม่ ตัวอย่างเช่น หากคุณเขียนข้อความค้นหาต่อไปนี้และกดเพียง Ctrl + F5 เพื่อแยกวิเคราะห์ จะไม่มีข้อผิดพลาด แต่ถ้าคุณกด F5 เพื่อเรียกใช้แบบสอบถาม Algebrizer จะทำงานและส่งคืนข้อผิดพลาด

 USE AdventureWorks 
GO
SELECT MakeFlag,SUM(ListPrice)
FROM Production.Product
GROUP BY ProductNumber

จุดตรวจสอบใน SQL Server

จุดตรวจใน SQL Server 2012 มี 4 ประเภท:

  1. อัตโนมัติ: ประเภทนี้เป็นจุดตรวจสอบที่พบบ่อยที่สุด ซึ่งทำงานในรูปแบบของกระบวนการพื้นหลังเพื่อให้แน่ใจว่าฐานข้อมูลเซิร์ฟเวอร์ SQL สามารถกู้คืนได้ภายในเวลาที่กำหนดโดยช่วงการกู้คืนในตัวเลือกการกำหนดค่าเซิร์ฟเวอร์
  2. ทางอ้อม: จุดตรวจนี้ใช้ได้เฉพาะใน SQL Server 2012 นอกจากนี้ยังเป็นกระบวนการที่ทำงานอยู่เบื้องหลัง แต่สำหรับผู้ใช้บางรายที่ระบุเวลาการกู้คืนสำหรับฐานข้อมูลเฉพาะในตัวเลือกการกำหนดค่าเท่านั้น เมื่อ Target_Recovery_Time สำหรับฐานข้อมูลเฉพาะถูกเลือก มันจะเขียนทับ Recovery Interval ที่กำหนดให้กับเซิร์ฟเวอร์ หลีกเลี่ยงจุดตรวจสอบอัตโนมัติบนฐานข้อมูล
  3. คู่มือ: ด่านนี้ทำงานเหมือนกับคำสั่ง SQL อื่นๆ เมื่อคุณสร้างคำสั่งด่าน คำสั่งนั้นจะทำงานให้เสร็จ จุดตรวจนี้ทำงานบนฐานข้อมูลปัจจุบันเท่านั้น คุณสามารถระบุ Checkpoint_Duration ในตัวเลือกเพื่อระบุระยะเวลาที่คุณต้องการให้ด่านเสร็จสิ้น
  4. ภายใน: ในฐานะผู้ใช้ คุณไม่สามารถควบคุมจุดตรวจประเภทนี้ในการดำเนินการเฉพาะ เช่น:
    1. ปิดการดำเนินการจุดตรวจบนฐานข้อมูลทั้งหมด เว้นแต่การปิดระบบจะล้มเหลว ซึ่งไม่ปกติ (ใช้ Shutdown ด้วยคำสั่ง nowith)
    2. เมื่อรูปแบบการกู้คืนถูกเปลี่ยนจาก FullBulk-logged เป็น Simple
    3. ขณะสำรองฐานข้อมูล
    4. หากฐานข้อมูลอยู่ในโหมดการกู้คืนอย่างง่าย กระบวนการตรวจสอบจะดำเนินการโดยอัตโนมัติหรือเมื่อบันทึกเต็ม 70% หรือขึ้นอยู่กับตัวเลือกช่วงการกู้คืนของเซิร์ฟเวอร์
    5. คำสั่ง ALTER DATABASE เพื่อเพิ่มหรือลบล็อก / ไฟล์ข้อมูลจะเริ่มต้นจุดตรวจเช่นกัน
    6. จุดตรวจสอบยังเกิดขึ้นเมื่อโมเดลการกู้คืนฐานข้อมูลถูกบันทึกเป็นกลุ่มและดำเนินการเขียนขั้นต่ำ

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

ในหัวข้อถัดไป เราจะเรียนรู้เกี่ยวกับ Management Studio และค่อยๆ ไปที่คำสั่งพื้นฐานของ SQL Server