การเข้าใจวิวัฒนาการของ SQL Server คือการดูประวัติศาสตร์การจัดการข้อมูลของโลก ตั้งแต่ยุคที่ใช้ร่วมกับ Unix ไปจนถึงยุค Cloud Native บน Azure ในฐานะ System Analyst ที่มีพื้นฐาน Developer การเข้าใจความต่างในแต่ละยุคจะช่วยให้คุณออกแบบ Provider ได้อย่างแม่นยำครับ
เราสามารถแบ่งยุคสมัยของ SQL Server ออกเป็น 4 ยุคหลักตามการเปลี่ยนแปลงของ Architecture และ Engine ดังนี้
ยุคปฐมบท: The Sybase Era
ช่วงปี: 1989 – 1998 ในยุคนี้ SQL Server คือการนำ Codebase จาก Sybase มาพัฒนาต่อเพื่อรันบน OS/2 และ Windows NT
- สถาปัตยกรรม: ทำงานแบบ Process-based และพึ่งพา System Tables อย่างหนักในการเก็บ Metadata
- ภาษา T-SQL: ยังไม่เป็นมาตรฐาน ANSI อย่างเต็มตัว การทำ Join ต้องใช้เครื่องหมาย
*=และ=*ซึ่งปัจจุบันเลิกใช้ไปแล้ว - จุดเด่น/ข้อจำกัด: ไม่มี GUI ที่ซับซ้อน การจัดการส่วนใหญ่ทำผ่าน Command Line หรือเครื่องมือพื้นฐาน และยังไม่มีแนวคิดเรื่อง Data Compression หรือ Encryption
- ความท้าทายของ Provider: หากคุณเขียน C# เชื่อมต่อยุคนี้ คุณต้องใช้ ODBC Driver และต้อง Query ข้อมูลจาก Table ระบบโดยตรงเท่านั้น
ยุคสร้างอาณาจักร: The Modern Foundations
ช่วงปี: 1998 – 2010 Microsoft ตัดสินใจเขียน Engine ใหม่เกือบทั้งหมดในเวอร์ชัน 7.0 เพื่อสลัดภาพจำจาก Sybase และเข้าสู่ยุค Enterprise เต็มตัว
- สถาปัตยกรรม: เริ่มใช้ Storage Engine และ Query Optimizer ที่ทรงพลังขึ้น รองรับฐานข้อมูลขนาด Terabyte
- การเปลี่ยนแปลงสำคัญ:
- SQL 2000: เปิดตัว XML Support และ User-Defined Functions
- SQL 2005: คือจุดเปลี่ยนสำคัญที่สุด มีการนำ .NET CLR เข้ามาในฐานข้อมูล, เปลี่ยนมาใช้ Catalog Views , และเริ่มมี
NVARCHAR (MAX) - SQL 2008/R2: เพิ่ม Compression และฟีเจอร์ Multi-server management
- ความท้าทายของ Provider: ยุคนี้เริ่มใช้
INFORMATION_SCHEMAได้อย่างเสถียร การทำ Paging Data มักใช้เทคนิคTOPหรือROW_NUMBER ()
ยุคแห่งประสิทธิภาพและ Hybrid: The High-Performance Era
ช่วงปี: 2012 – 2017 เป็นยุคที่ SQL Server เริ่มขยับเข้าใกล้ Cloud และเน้นความเร็วระดับ Extreme
- สถาปัตยกรรม: รองรับ Columnstore Index (การเก็บข้อมูลแนวตั้ง) สำหรับงาน Data Warehouse และ In-Memory OLTP
- ฟีเจอร์เด่น:
- AlwaysOn Availability Groups: ยกระดับการทำ High Availability
- JSON Support: เริ่มรองรับการเก็บและ Query JSON
- SQL on Linux: เป็นครั้งแรกที่ SQL Server สามารถรันบน Linux ได้
- ความท้าทายของ Provider: คุณสามารถใช้มาตรฐาน
OFFSET ... FETCHในการดึงข้อมูลเป็น Batch ได้แล้ว ซึ่งเขียนง่ายและประสิทธิภาพดีกว่าเดิมมาก
ยุคไร้พรมแดน: The Intelligent & Cloud-Native Era
ช่วงปี: 2019 – ปัจจุบัน SQL Server กลายเป็น “Data Platform” ที่ไม่ใช่แค่ที่เก็บ Table แต่รองรับ Big Data และ AI
- สถาปัตยกรรม: รวมพลังกับ Big Data Clusters และขยายตัวไปเป็น Azure SQL อย่างสมบูรณ์
- เทคโนโลยีสมัยใหม่:
- Query Store: ระบบ AI ที่ช่วยวิเคราะห์และจดจำแผนการประมวลผล (Execution Plan) ให้เร็วขึ้นอัตโนมัติ
- Always Encrypted with Enclaves: เข้ารหัสข้อมูลแม้แต่ใน Memory ของ Server
- Ledger Table: ใช้เทคโนโลยี Blockchain ภายใน Database เพื่อป้องกันการแก้ไขประวัติข้อมูล
- ความท้าทายของ Provider: ใน .NET 10 คุณต้องรับมือกับความปลอดภัยระดับสูงสุด และฟีเจอร์ใหม่อย่าง UTF-8 Support
ตารางสรุปเปรียบเทียบสำหรับงานเขียน Provider
| ฟีเจอร์ | ยุค Sybase | ยุค Classic | ยุค Modern |
| Metadata Source | sysobjects | INFORMATION_SCHEMA | sys.objects |
| Data Paging | SET ROWCOUNT | TOP / ROW_NUMBER () | OFFSET ... FETCH |
| Driver (.NET 10) | ODBC | SqlClient | Microsoft.Data.SqlClient |
| DataType สูงสุด | TEXT / IMAGE | NVARCHAR (MAX) / XML | JSON / Geospatial |
อ่านเพิ่มเติม