Microsoft® เปิดตัวคุณลักษณะใหม่ที่เรียกว่าไฮบริดบัฟเฟอร์พูลใน SQLServer® 2019 (ดูตัวอย่าง) CTP 2.1 คุณลักษณะนี้ช่วยให้คุณสามารถเข้าถึงหน้าข้อมูลโดยตรงในไฟล์ฐานข้อมูลที่จัดเก็บไว้ในอุปกรณ์หน่วยความจำถาวร (PMEM)
PMEM คืออะไร
PMEM เป็นอุปกรณ์หน่วยความจำแบบระบุไบต์ได้ประสิทธิภาพสูงแบบโซลิดสเตตซึ่งอยู่บนบัสหน่วยความจำ มีประโยชน์มากมายกว่าอุปกรณ์จัดเก็บข้อมูลอื่นๆ
ประโยชน์หลักของ PMEM ได้แก่:
- ให้การเข้าถึงข้อมูลที่รวดเร็วและใกล้เคียงแบบเรียลไทม์สำหรับชุดข้อมูลขนาดใหญ่โดยไม่มีเวลาแฝงเมื่อเทียบกับแฟลชโซลิดสเตตไดรฟ์ (SSD)
- เพิ่มปริมาณงานมากกว่าที่จัดเก็บข้อมูลแฟลช
- ราคาถูกกว่า Dynamic Random Access Memory (DRAM)
- สามารถแคชได้ นี่เป็นข้อได้เปรียบอย่างมากเหนือ Peripheral ComponentInterconnect (PCIe) ซึ่งไม่สามารถแคชได้ในหน่วยประมวลผลกลาง (CPU)
- เก็บข้อมูลไว้ในหน่วยความจำหลังจากไฟฟ้าขัดข้องหรือปิดเครื่อง
คุณสามารถใช้ PMEM ได้หลายวิธีเพื่อลดเวลาแฝงสำหรับแอปพลิเคชันที่คุณต้องการเข้าถึงข้อมูลได้เร็วขึ้นด้วยข้อมูลจำนวนมหาศาล เช่น แอปพลิเคชัน Internet ofThings (IoT) การวิเคราะห์ภัยคุกคามทางไซเบอร์ และการซื้อขายทางการเงินอื่นๆ
แนวคิด
ข้อกำหนดต่อไปนี้ใช้ได้กับคุณลักษณะส่วนขยายบัฟเฟอร์พูล:
-
โซลิดสเทตไดรฟ์ (SSD) :จัดเก็บข้อมูลในหน่วยความจำ (RAM) อย่างต่อเนื่อง
-
บัฟเฟอร์ :ใน SQL Server บัฟเฟอร์คือเพจขนาด 8 KB ในหน่วยความจำ ซึ่งมีขนาดเท่ากับหน้าข้อมูลหรือดัชนี ดังนั้นบัฟเฟอร์แคชจึงแบ่งออกเป็นหน้าขนาด 8 KB Apage ยังคงอยู่ในบัฟเฟอร์แคชจนกว่าตัวจัดการบัฟเฟอร์ต้องการพื้นที่บัฟเฟอร์เพื่ออ่านข้อมูลเพิ่มเติม ข้อมูลจะถูกเขียนกลับไปยังดิสก์ก็ต่อเมื่อมีการแก้ไข หน้าที่แก้ไขในหน่วยความจำเหล่านี้เรียกว่าหน้าสกปรก เพจจะสะอาดเมื่อเพจนั้นเทียบเท่ากับอิมเมจฐานข้อมูลบนดิสก์ ข้อมูลในบัฟเฟอร์แคชสามารถแก้ไขได้หลายครั้งก่อนที่จะเขียนกลับไปยังดิสก์
-
บัฟเฟอร์พูล :เรียกอีกอย่างว่าบัฟเฟอร์แคช บัฟเฟอร์พูลเป็นทรัพยากรส่วนกลางที่ใช้ร่วมกันโดยฐานข้อมูลทั้งหมดสำหรับหน้าข้อมูลที่แคชไว้ ขนาดสูงสุดและต่ำสุดของแคชพูลบัฟเฟอร์ถูกกำหนดในระหว่างการเริ่มต้นระบบ หรือเมื่ออินสแตนซ์ของเซิร์ฟเวอร์ SQL ถูกกำหนดค่าใหม่แบบไดนามิกโดยใช้ sp_configure ขนาดนี้กำหนดจำนวนสูงสุดของเพจที่สามารถแคชในบัฟเฟอร์พูลได้ตลอดเวลาในอินสแตนซ์ที่ทำงานอยู่ หน่วยความจำสูงสุดที่สามารถคอมมิตโดยส่วนขยายบัฟเฟอร์พูลสามารถถูกจำกัดโดยแอปพลิเคชันอื่นที่ทำงานบนเครื่องในกรณีที่สร้างแรงกดดันต่อหน่วยความจำที่สำคัญ
-
ด่าน :จุดตรวจสอบสร้างจุดดีที่รู้จักซึ่งกลไกจัดการฐานข้อมูลสามารถเริ่มใช้การเปลี่ยนแปลงที่มีอยู่ในรายการบันทึกระหว่างการกู้คืนหลังจากการปิดระบบหรือหยุดทำงานโดยไม่คาดคิด จุดตรวจเขียนหน้าสกปรกและข้อมูลบันทึกธุรกรรมจากหน่วยความจำไปยังดิสก์ และยังบันทึกข้อมูลเกี่ยวกับบันทึกธุรกรรมด้วย
-
การเข้าถึงโดยตรง (DAX) :DAX ทำงานเหมือนหน่วยความจำเพื่อให้ได้เวลาแฝงต่ำสุด แอปจะแก้ไขหน่วยความจำถาวรโดยตรง โดยข้ามสแต็ก ตัวเลือกนี้ใช้ได้กับ NTFS เท่านั้น
รูปภาพต่อไปนี้แสดง DAX:
ที่มา :https://docs.microsoft.com/en-us/windows-server/storage/storage-spaces/deploy-pmem
ไฮบริดบัฟเฟอร์พูลคืออะไร
ในระบบดั้งเดิม SQL Server จะแคชหน้าข้อมูลในบัฟเฟอร์พูลแบบ DRAM ด้วยบัฟเฟอร์พูลแบบไฮบริด SQL Server จะข้ามการคัดลอกเพจไปยังส่วนที่ใช้ DRAM ของบัฟเฟอร์พูล และแทนที่จะอ้างอิงเพจโดยตรงบนไฟล์ฐานข้อมูลที่อยู่บนอุปกรณ์ PMEM ระบบเข้าถึงไฟล์ข้อมูลใน PMEM สำหรับพูลบัฟเฟอร์ไฮบริดโดยใช้หน่วยความจำที่แมป I/O ซึ่งเรียกอีกอย่างว่าการตรัสรู้ของไฟล์ข้อมูลภายใน SQL Server
กระบวนการนี้ก่อให้เกิดประโยชน์ด้านประสิทธิภาพโดยหลีกเลี่ยงสำเนาของเพจไปยัง DRAM และขจัดความจำเป็นสำหรับสแต็ก I/O ของระบบปฏิบัติการในการเข้าถึงเพจบนพื้นที่เก็บข้อมูลถาวร
ระบบสามารถเข้าถึงหน้าที่สะอาดได้โดยตรงบนอุปกรณ์ PMEM เท่านั้น เมื่อเพจสกปรก ระบบจะคัดลอกเพจนั้นไปยังบัฟเฟอร์พูลแบบ DRAM แล้วเขียนกลับไปยังอุปกรณ์ PMEM กระบวนการนี้เกิดขึ้นระหว่างการดำเนินการตามจุดตรวจปกติ
คุณลักษณะบัฟเฟอร์พูลแบบไฮบริดพร้อมใช้งานสำหรับทั้ง Windows® และ Linux® อุปกรณ์ PMEM ต้องจัดรูปแบบด้วยระบบไฟล์ที่รองรับ DirectAccess(DAX) DAX รองรับระบบไฟล์ต่อไปนี้:
- Extended File System (XFS)
- EXT4
- ระบบไฟล์เทคโนโลยีใหม่ (NTFS)
SQL Server จะตรวจจับโดยอัตโนมัติว่าไฟล์ข้อมูลอยู่ในอุปกรณ์ PMEM ที่จัดรูปแบบอย่างเหมาะสมหรือไม่ และทำการแมปหน่วยความจำในพื้นที่ของผู้ใช้ การแมปนี้จะเกิดขึ้นเมื่อเริ่มต้น เมื่อมีการแนบ กู้คืน หรือสร้างฐานข้อมูลใหม่ และเมื่อเปิดใช้งานคุณลักษณะพูลบัฟเฟอร์แบบไฮบริดสำหรับฐานข้อมูล
เปิดใช้งานไฮบริดบัฟเฟอร์พูล
SQL Server 2019 แนะนำภาษาข้อมูลแบบไดนามิก (DDL) เพื่อควบคุมบัฟเฟอร์พูลแบบไฮบริด ตัวอย่างต่อไปนี้เปิดใช้งานพูลบัฟเฟอร์ไฮบริดสำหรับอินสแตนซ์ของ SQLServer:
ALTER SERVER CONFIGURATION SET MEMORY_OPTIMIZED HYBRID_BUFFER_POOL = ON;
โดยค่าเริ่มต้น ไฮบริดบัฟเฟอร์พูลถูกตั้งค่าให้ปิดใช้งานที่ขอบเขตอินสแตนซ์
หมายเหตุ :เพื่อให้การเปลี่ยนแปลงการตั้งค่ามีผล คุณต้องเริ่มอินสแตนซ์ของเซิร์ฟเวอร์ SQL ใหม่ การรีสตาร์ทช่วยอำนวยความสะดวกในการจัดสรรหน้าแฮชที่เพียงพอเพื่อรองรับความจุ PMEM ทั้งหมดบนเซิร์ฟเวอร์
ตัวอย่างต่อไปนี้เปิดใช้งานพูลบัฟเฟอร์แบบไฮบริดสำหรับฐานข้อมูลเฉพาะ:
ALTER DATABASE <databaseName> SET MEMORY_OPTIMIZED = ON;
โดยค่าเริ่มต้น ไฮบริดบัฟเฟอร์พูลถูกตั้งค่าให้เปิดใช้งานที่ขอบเขตฐานข้อมูล
ปิดใช้งานพูลบัฟเฟอร์ไฮบริด
ตัวอย่างต่อไปนี้ปิดใช้งานพูลบัฟเฟอร์ไฮบริดสำหรับอินสแตนซ์ของ SQL Server:
ALTER SERVER CONFIGURATION SET MEMORY_OPTIMIZED HYBRID_BUFFER_POOL = OFF;
โดยค่าเริ่มต้น ไฮบริดบัฟเฟอร์พูลถูกตั้งค่าให้ปิดใช้งานที่ขอบเขตอินสแตนซ์
หมายเหตุ :เพื่อให้การเปลี่ยนแปลงการตั้งค่ามีผล คุณต้องรีสตาร์ทอินสแตนซ์เซิร์ฟเวอร์ SQL การรีสตาร์ทจะป้องกันไม่ให้มีการจัดสรรหน้าแฮชมากเกินไปเนื่องจากไม่จำเป็นต้องคำนึงถึงความจุ PMEM บนเซิร์ฟเวอร์
ตัวอย่างต่อไปนี้ปิดใช้งานพูลบัฟเฟอร์ไฮบริดสำหรับฐานข้อมูลเฉพาะ:
ALTER DATABASE <databaseName> SET MEMORY_OPTIMIZED = OFF;
โดยค่าเริ่มต้น ไฮบริดบัฟเฟอร์พูลถูกตั้งค่าให้เปิดใช้งานที่ขอบเขตฐานข้อมูล
ดูการกำหนดค่าพูลบัฟเฟอร์ไฮบริด
ตัวอย่างต่อไปนี้จะคืนค่าสถานะปัจจุบันของการกำหนดค่าระบบบัฟเฟอร์แบบไฮบริดสำหรับอินสแตนซ์ของ SQL Server:
SELECT * FROM sys.configurations WHERE name = 'hybrid_buffer_pool';
ตัวอย่างต่อไปนี้จะคืนค่าสองตาราง:
SELECT * FROM sys.configurations WHERE name = 'hybrid_buffer_pool';
SELECT name, is_memory_optimized_enabled FROM sys.databases;
- ตารางแรกแสดงสถานะปัจจุบันของการกำหนดค่าระบบบัฟเฟอร์พูลแบบไฮบริดสำหรับอินสแตนซ์ของ SQL Server
- ตารางที่สองแสดงรายการฐานข้อมูลและการตั้งค่าระดับฐานข้อมูลสำหรับพูลบัฟเฟอร์แบบไฮบริด
แนวทางปฏิบัติที่ดีที่สุดสำหรับบัฟเฟอร์พูลแบบไฮบริด
ขอแนะนำว่าอย่าเปิดใช้งานไฮบริดบัฟเฟอร์พูลบนอินสแตนซ์ที่มี RAM น้อยกว่า 16 GB
เมื่อทำการฟอร์แมตอุปกรณ์ PMEM ของคุณบน Windows ให้ใช้หน่วยการจัดสรรที่ใหญ่ที่สุดสำหรับ NTFS (2 MB ใน Windows Server® 2019) และตรวจดูให้แน่ใจว่าอุปกรณ์ได้รับการฟอร์แมตสำหรับ DAX แล้ว ขนาดไฟล์ควรเป็นทวีคูณของ 2 MB (โมดูล 2 MB ควรเท่ากับศูนย์)
หากการตั้งค่าขอบเขตเซิร์ฟเวอร์สำหรับพูลบัฟเฟอร์ไฮบริดถูกตั้งค่าเป็นปิดใช้งาน ฐานข้อมูลผู้ใช้จะไม่ใช้พูลไฮบริดบัฟเฟอร์
หากเปิดใช้งานการตั้งค่าขอบเขตเซิร์ฟเวอร์สำหรับพูลบัฟเฟอร์ไฮบริด คุณสามารถปิดใช้งานการใช้พูลบัฟเฟอร์ไฮบริดสำหรับฐานข้อมูลผู้ใช้แต่ละรายได้โดยการปิดใช้งานบัฟเฟอร์พูลแบบไฮบริดที่ระดับขอบเขตฐานข้อมูลสำหรับฐานข้อมูลผู้ใช้เหล่านั้น
บทสรุป
ไฮบริดบัฟเฟอร์พูลช่วยให้คุณสามารถเข้าถึงหน้าข้อมูลฐานข้อมูลที่จัดเก็บไว้ในอุปกรณ์ PMEM ได้โดยตรง ประสิทธิภาพของระบบได้รับการปรับปรุงเนื่องจากไม่มีการคัดลอกเพจไปยัง DRAM และสแต็ค I/O ของระบบปฏิบัติการไม่จำเป็นต้องเข้าถึงเพจบนที่เก็บข้อมูลถาวร
อ้างถึงเอกสารต่อไปนี้สำหรับข้อมูลเพิ่มเติม:
Microsoft อธิบายตัวอย่าง SQL Server 2019 ล่าสุดและการปรับปรุง Azure SQL พูลบัฟเฟอร์ไฮบริด
ใช้แท็บคำติชมเพื่อแสดงความคิดเห็นหรือถามคำถาม
เพิ่มประสิทธิภาพสภาพแวดล้อมของคุณด้วยการดูแลระบบ การจัดการ และการกำหนดค่าจากผู้เชี่ยวชาญ
บริการแอปพลิเคชันของ Rackspace(RAS) ผู้เชี่ยวชาญจะให้บริการแบบมืออาชีพและที่มีการจัดการในแอปพลิเคชันที่หลากหลาย:
- แพลตฟอร์มอีคอมเมิร์ซและประสบการณ์ดิจิทัล
- การวางแผนทรัพยากรองค์กร (ERP)
- ระบบธุรกิจอัจฉริยะ
- การจัดการลูกค้าสัมพันธ์ของ Salesforce (CRM)
- ฐานข้อมูล
- อีเมลโฮสติ้งและประสิทธิภาพการทำงาน
เราจัดส่ง:
- ความเชี่ยวชาญที่เป็นกลาง :เราลดความซับซ้อนและเป็นแนวทางในการสร้างสรรค์สิ่งใหม่ของคุณ โดยมุ่งเน้นที่ความสามารถที่มอบคุณค่าในทันที
- ประสบการณ์สุดคลั่ง ™:เรารวมกระบวนการก่อน เทคโนโลยีที่สอง®แนวทางพร้อมการสนับสนุนทางเทคนิคเฉพาะเพื่อมอบโซลูชันที่ครอบคลุม
- ผลงานที่ยอดเยี่ยม :เราใช้ประสบการณ์ระบบคลาวด์ที่ครอบคลุมเพื่อช่วยคุณเลือกและปรับใช้เทคโนโลยีที่เหมาะสมบนระบบคลาวด์ที่เหมาะสม
- ส่งไว :เราพบคุณในที่ที่คุณอยู่ในการเดินทางของคุณและปรับความสำเร็จของเราไปพร้อมกับคุณ
แชทเลยเพื่อเริ่มต้น