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

จุดใหม่ใน SQL Server 2017

SQL Server 2017 เปิดตัวอย่างเป็นทางการในเดือนตุลาคม 2017 ส่วนแรกของ SQL Server 2017 ได้รับการเผยแพร่ตั้งแต่สิ้นปี 2016 ณ สิ้นปี 2017 มี 10 รีลีส

เวอร์ชันของ SQL Server 2017 เชื่อมต่อกับ Linux เป็นหลัก ซึ่งนำพลังของ SQL มาสู่ Linux กล่าวโดยย่อ คุณสามารถติดตั้ง SQL Server 2017 บน Linux โดยใช้ SQL Server 2017 บนคอนเทนเนอร์เทียบท่าบน Linux SQL Server 2017 ยังให้คุณเลือกภาษาสำหรับการพัฒนา พัฒนาในองค์กรหรือบนคลาวด์ได้

ในเวอร์ชันนี้ SQL Server 2017 ยังปรับปรุงประสิทธิภาพ ความสามารถในการปรับขนาด และคุณลักษณะในแต่ละส่วน เช่น Database Engine, Integration Services, Master Data Services, Analysis Services เป็นต้น ในบทความนี้ เราจะดูทีละส่วน

ฟีเจอร์ใหม่ของ SQL Server 2017

  1. ฟีเจอร์ใหม่ในโปรแกรมฐานข้อมูล
    1. identity_cache
    2. ปรับปรุงการประมวลผลคิวรีแบบปรับเปลี่ยนได้
    3. ปรับจูนอัตโนมัติ
  2. คุณลักษณะใหม่ในกราฟ DB
    1. กราฟ DB คืออะไร
  3. ใช้ได้เสมอ (การเข้าถึงข้อมูลข้าม)
  4. การปรับปรุง DTA
  5. ฟังก์ชันสตริงใหม่
    1. แปล
    2. CONCATE_WS
    3. ทริม
    4. STRING_AGG
  6. มีอะไรใหม่ใน SSRS (บริการรายงาน) ของ SQL 2017
  7. มีอะไรใหม่ใน SSIS (Integrated Services) ใน SQL 2017
  8. มีอะไรใหม่ใน Analysis Services (SSAS) ใน SQL 2017
  9. แมชชีนเลิร์นนิง
  10. รองรับ Linux

คุณลักษณะใหม่ในกลไกจัดการฐานข้อมูล

identity_cache

จุดใหม่ใน SQL Server 2017

ตัวเลือกนี้ช่วยให้คุณหลีกเลี่ยงการเบี่ยงเบนในค่าของคอลัมน์ ID ในกรณีที่เซิร์ฟเวอร์ปิดตัวลงกะทันหันหรือเกิดข้อผิดพลาด หรือแม้กระทั่งสลับไปยังเซิร์ฟเวอร์สำรอง ใช้กับคำสั่ง ALTER DATABASE SOPED CONFIGURATION เพื่อเปิดใช้งานการตั้งค่าการกำหนดค่าฐานข้อมูล ไวยากรณ์มีดังนี้:

 ALTER DATABASE SCOPED CONFIGURATION { { [ FOR SECONDARY] SET } } | CLEAR PROCEDURE_CACHE | SET < set_options > [;] < set_options > ::= { MAXDOP = { | PRIMARY } | LEGACY_CARDINALITY_ESTIMATION = { ON | OFF | PRIMARY } | PARAMETER_SNIFFING = { ON | OFF | PRIMARY } | QUERY_OPTIMIZER_HOTFIXES = { ON | OFF | PRIMARY } | IDENTITY_CACHE = { ON | OFF } }

ปรับปรุงการประมวลผลข้อความค้นหาที่ปรับเปลี่ยนได้

หากคุณต้องการปรับปรุงประสิทธิภาพการสืบค้น คุณลักษณะใหม่นี้จะช่วยได้อย่างมาก รองรับใน SQL Server และ Azure SQL Database

นี่เป็นกระบวนการปรับให้เหมาะสมตามปกติเมื่อดำเนินการค้นหา SQL:

  1. ก่อนอื่น เครื่องมือเพิ่มประสิทธิภาพการสืบค้นข้อมูลจะคำนวณแผนการดำเนินการค้นหาที่เป็นไปได้ทั้งหมดสำหรับคำค้นหาที่เพิ่งสร้างขึ้น
  2. ถัดไป จะแสดงแผนที่ดีที่สุด / เร็วที่สุด
  3. สุดท้าย แผนที่ดีที่สุดโดยประมาณจะถูกเลือกเพื่อดำเนินการค้นหา จากนั้นกระบวนการดำเนินการจะเริ่มขึ้น

กระบวนการข้างต้นมีข้อเสียดังต่อไปนี้:

  1. หากการประมาณการผิดแผนดีที่สุด จะส่งผลต่อประสิทธิภาพ
  2. หากมีการจัดสรรหน่วยความจำไม่เพียงพอสำหรับการดำเนินการตามแผนที่เหมาะสม จะเกิดข้อผิดพลาดหน่วยความจำล้น

ต่อไปนี้คือคุณลักษณะที่ SQL Server 2017 ได้รวมไว้เพื่อเอาชนะข้อเสียเหล่านี้:

Batch Mode Memory Grant Feedback (คำติชมเกี่ยวกับการจัดสรรหน่วยความจำสำหรับโหมดแบตช์):คำติชมนี้จะคำนวณหน่วยความจำที่จำเป็นสำหรับการดำเนินการตามแผนและจัดสรรหน่วยความจำสำหรับหน่วยความจำจากแคช

พี>

Batch Mode Adaptive Joins (Join adapting to batch mode):มีการรวม 2 ประเภท:Hash และ nested loop เมื่อป้อนและสแกนรายการแผนปฏิบัติการเป็นครั้งแรก ระบบจะกำหนดประเภทการรวมที่จะใช้เพื่อให้ได้ผลลัพธ์ที่ความเร็วสูงสุด

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

การปรับอัตโนมัติ

คุณลักษณะนี้จะตรวจสอบปัญหาในประสิทธิภาพของคิวรี ระบุปัญหา และแก้ไขด้วยโซลูชันที่เสนอ นี่คือเทคนิคการจูนอัตโนมัติที่มีอยู่ในคุณสมบัตินี้:

Automatic Correction (Plan):เทคนิคนี้มีอยู่ในฐานข้อมูล SQL 2017 ซึ่งจะพบปัญหาด้านประสิทธิภาพในแผนการสืบค้นที่ให้มา จากนั้นจึงแก้ไขด้วยวิธีแก้ไขปัญหาที่เสนอ

พี>

การจัดการอัตโนมัติ (ดัชนี):เทคนิคนี้รวมอยู่ใน SQL 2017 Azure DB โดยจะระบุและแก้ไขลำดับของดัชนีด้วยการลบดัชนีที่ไม่ได้มาตรฐานและเพิ่มค่าที่ถูกต้อง ดัชนี

คุณลักษณะใหม่ในฐานข้อมูลกราฟ

ฐานข้อมูลกราฟคืออะไร

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

  1. เมื่อมีฐานข้อมูลในรูปแบบลำดับชั้นและต้องการบันทึกพาเรนต์หลายรายการสำหรับโหนดหนึ่งๆ
  2. เมื่อคุณต้องการตรวจสอบและวิเคราะห์ลิงก์และความสัมพันธ์ของข้อมูล
  3. เมื่อมีความสัมพันธ์มากมาย (ความสัมพันธ์)

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

ใช้ได้เสมอ (เข้าถึงข้อมูลข้าม)

ด้วยความช่วยเหลือของคุณลักษณะนี้ ขณะนี้สามารถแลกเปลี่ยนฐานข้อมูลระหว่างอินสแตนซ์ SQL ต่างๆ (อินสแตนซ์ SQL ที่สามารถเชื่อมต่อกับอินสแตนซ์อื่นๆ ได้) นอกจากนี้ยังสนับสนุน การแลกเปลี่ยนฐานข้อมูลแบบกระจาย[SQL 2016 ยังสนับสนุนการเข้าถึงฐานข้อมูลข้ามแต่ระหว่างอินสแตนซ์ภายใน SQL Server เดียวกันเท่านั้น]

การปรับปรุง DTA

ใน SQL 2017 มีการปรับปรุงประสิทธิภาพในโปรแกรมแนะนำการปรับฐานข้อมูล (DTA) โดยเฉพาะ เพิ่มตัวเลือกสำหรับ DTA แล้ว

หากคุณไม่รู้ว่า DTA คืออะไร:

DTA เป็นเครื่องมือฐานข้อมูลที่ทำการประมวลผลแบบสอบถาม (ประมวลผลแล้ว) แล้วจึงเสนอวิธีที่จะช่วยคุณปรับปรุงประสิทธิภาพ โดยอาจเปลี่ยนโครงสร้างฐานข้อมูล data (เช่น ดัชนี, ล็อค)DTA สามารถใช้ได้สองวิธีดังต่อไปนี้:

  1. การใช้ GUI (อินเทอร์เฟซ)
  2. ใช้ยูทิลิตีคำสั่ง

ฟังก์ชันสตริงใหม่

SQL 2017 ให้ฟังก์ชันสตริงใหม่แก่ผู้ใช้ เช่น TRANSLATE, CONCAT_WS, STRING_AGG, TRIM . มาสำรวจแต่ละฟังก์ชันกัน

แปล

โดยทั่วไป ฟังก์ชันนี้ใช้อักขระ สตริง เป็นข้อมูลอินพุตแล้วแปลงอักขระเหล่านี้เป็นอักขระใหม่ โปรดดูไวยากรณ์ด้านล่าง:

  TRANSLATE (inputString, characters, translations) 

ในไวยากรณ์ที่สูงกว่าความยาวของ 'อักขระ' จะต้องเหมือนกับใน 'translations' มิฉะนั้น ฟังก์ชันจะคืนค่าผิดพลาด ตัวอย่างเช่น:

  TRANSLATE ( '6 * {10 + 10} / [6-4]' , '[] {}' , '() ()' ) 

ผลลัพธ์ที่ส่งคืนโดยตัวอย่างด้านบนจะเป็น 6 * (10 + 10) / (6-4) เราจะเห็นได้ว่าเหล็กดัดและวงเล็บปีกกาจะถูกแปลงเป็นวงเล็บกลม

ฟังก์ชันนี้มีกลไกเดียวกับฟังก์ชัน REPLACE แต่การใช้งานที่ง่ายกว่าคือการแทนที่ฟังก์ชัน REPLACE ตัวอย่างเช่น หากเราต้องการส่งคืนผลลัพธ์ตามด้านบนแต่ใช้ ฟังก์ชัน REPLACE นั้น เราต้องเขียนฟังก์ชันต่อไปนี้ เมื่อเห็นแวบแรกจะมองเห็นไม่ง่าย:

  SELECT REPLACE (REPLACE (REPLACE (REPLACE ( '6 * {10 + 10} / [6-4]' , '{' , '(' ), '}' , ')' ), '[' , '(' ), ']' , ')' ); 

CONCATE_WS

หน้าที่ของฟังก์ชันนี้คือการเชื่อมโยงอาร์กิวเมนต์อินพุตทั้งหมดเข้ากับตัวคั่นที่ระบุ โปรดดูรูปแบบต่อไปนี้:

  CONCAT_WS (separator, argument1, argument1 [, argumentN] .) 

ฟังก์ชันนี้สร้างสตริงเดี่ยวโดยเชื่อมอาร์กิวเมนต์ทั้งหมดเข้าด้วยกันโดยใช้ตัวคั่น ดังนั้นจึงต้องมีอาร์กิวเมนต์อย่างน้อย 2 อาร์กิวเมนต์เพื่อสร้างเอาต์พุต มิฉะนั้น ผลลัพธ์จะส่งคืน about will error สำหรับ ตัวอย่าง:

SELECTCONCAT_WS (',','Count numers','one','two','three','four')AScounter;

ผลลัพธ์ที่ส่งคืนโดยคำสั่งด้านบนจะเป็น:หนึ่ง สอง สาม สี่

คุณยังสามารถใช้ชื่อคอลัมน์ฐานข้อมูลแทนสตริงที่เข้ารหัสได้

ตัด

ในที่สุด ฟังก์ชันนี้ก็ปรากฏใน SQL 2017 โดยพื้นฐานแล้ว มันทำงานเหมือนกับฟังก์ชันการตัดแต่งของ C # นั่นคือการลบช่องว่างพิเศษทั้งหมดที่จุดเริ่มต้นและจุดสิ้นสุดของสตริง ไวยากรณ์มีดังนี้:

  SELECT TRIM ( 'trim me' ) AS result; 

ผลลัพธ์ที่ส่งคืนโดยคำสั่งด้านบนจะเป็น:ตัดฉัน

ฟังก์ชันนี้จะไม่ลบช่องว่างตรงกลาง สตริง

STRING_AGG

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

ดูไวยากรณ์ด้านล่าง:

  STRING_AGG (expression, separator) [] 

:: =
WITHIN GROUP ( ORDER BY [ ASC | DESC ])

โปรดอ้างอิงจากตัวอย่างต่อไปนี้:

  SELECT city, 
STRING_AGG (name, ';' ) WITHIN GROUP ( ORDER BY name ASC ) AS names
FROM Students GROUP BY city;

ในตัวอย่างข้างต้น ชื่อทั้งหมดได้รับการจับคู่และคั่นด้วยเครื่องหมายอัฒภาค (;) ส่วนคำสั่งภายในกลุ่มช่วยให้เราจัดเรียงตามลำดับผลลัพธ์จะแสดงเป็น ดังต่อไปนี้:

จุดใหม่ใน SQL Server 2017

มีอะไรใหม่ใน SSRS (บริการการรายงาน) ของ SQL 2017

  1. จากนี้ไป การตั้งค่า SSRS จะใช้ไม่ได้อีกต่อไปในการตั้งค่า SQL Server คุณต้องดาวน์โหลดจากร้านดาวน์โหลด [ที่นี่]
  2. จากนี้ไป ตัวออกแบบแบบสอบถามจะสนับสนุน DAX สามารถสร้างการสืบค้น DAX ดั้งเดิมเพื่อป้องกัน SSAS (บริการวิเคราะห์) คุณลักษณะนี้จะปรากฏในการอัปเดตล่าสุดของเครื่องมือ SQL และตัวสร้างรายงาน
  3. คำสั่ง OpenAPI รองรับโดย RESTful API และตอนนี้ SSRS รองรับ RESTful API แล้ว
  4. จากนี้ไป คุณสามารถแนบไฟล์เพิ่มเติมกับความคิดเห็นของคุณ
  5. คุณยังสามารถเพิ่มความคิดเห็นในรายงานได้
  6. พอร์ทัลบริการการรายงานได้รับการอัปเกรดอย่างมีนัยสำคัญ (คุณลักษณะนี้มีให้ใช้งานใน SQL 2016)

มีอะไรใหม่ใน SSIS (บริการแบบรวม) ใน SQL 2017

จากนี้ไป คุณสามารถใช้ SSIS บน Linux เพิ่มระดับเสียง แยกและแปลงข้อมูลได้โดยตรงบน Linux

คุณลักษณะการปรับขนาดช่วยให้ระบบผสานรวมที่ซับซ้อนด้วยเครื่องจักรที่มีประสิทธิภาพสูงจำนวนมาก คุณลักษณะการปรับขนาดสามารถดำเนินการทั้งหมดได้ด้วยความช่วยเหลือของ Scale Out Master และ Scale Out Workers

มีอะไรใหม่ใน Analysis Services (SSAS) ใน SQL 2017

  1. อินเทอร์เฟซใหม่ของ Get Data เผยแพร่ใน SQL 2017 คล้ายกับ MS Excel, power BI นอกจากนี้ ยังมีฟีเจอร์การแปลงข้อมูลและการรวมข้อมูลปรากฏขึ้นด้วย คุณสามารถทำได้โดยใช้ตัวสร้างคิวรีและนิพจน์ M
  2. หลี่>
  3. โหมดตารางสำหรับ SSAS - อาณาจักรที่เปิดตัวใน SQL 2012 ตอนนี้ได้รับการอัปเกรดอย่างมีนัยสำคัญใน SQL 2017
  4. SQL 2017 เสนอคำแนะนำการเข้ารหัสใหม่ ซึ่งใช้เพื่อเพิ่มประสิทธิภาพข้อมูลตารางในหน่วยความจำขนาดใหญ่
  5. ปรับปรุงประสิทธิภาพสำหรับ PIVOT

การเรียนรู้ของเครื่อง

เราทุกคนทราบดีว่าปัจจุบัน SQL 2016 รองรับบริการ R และจากนี้ไป บริการนี้จะถูกเปลี่ยนชื่อเป็นบริการการเรียนรู้ของ SQL Server Machine ประโยชน์จากการเปลี่ยนแปลงนี้คือคุณสามารถ ใช้ระบบคำสั่ง R หรือ Python บน SQL Server ได้อย่างง่ายดาย

ด้วยฟีเจอร์ใหม่นี้ Python สามารถเรียกใช้ใน Stored Procedure ได้ คุณยังสามารถรันคำสั่งจากระยะไกลผ่าน SQL Server ซึ่งมีประโยชน์อย่างมากสำหรับนักพัฒนา Python อย่างไรก็ตาม ฟีเจอร์นี้ยังไม่สามารถใช้งานได้ในขณะนี้ รองรับบน Linux แล้ว โปรดรอการอัปเกรดครั้งถัดไป

หากต้องการใช้แมชชีนเลิร์นนิงอย่างมีประสิทธิภาพและเหมาะสมที่สุด SQL จะใช้โซลูชันต่อไปนี้:

  1. revoscalepy เป็นไลบรารีรูปแบบใหม่ที่ทำหน้าที่เป็นรากฐานสำหรับอัลกอริธึม การคำนวณ และสถานการณ์ระยะไกลที่มีประสิทธิภาพสูง โดยทั่วไป revoscalepy คือ ขึ้นอยู่กับแพลตฟอร์ม RevoScaleR (เซอร์วิสแพ็ค R)
  2. microsoftml เป็น Microsoft R คลัสเตอร์เซิร์ฟเวอร์ที่รองรับอัลกอริธึมภาษาเครื่อง Microsoft ได้พัฒนาไลบรารีนี้สำหรับการเรียนรู้ของเครื่องภายใน แต่ในช่วงหลายปีที่ผ่านมามีการปรับปรุงและขณะนี้ microsoftml รองรับการถ่ายโอนข้อมูลที่รวดเร็วรวมถึงการแปลงเอกสารขนาดใหญ่ ฯลฯ

รองรับ Linux

โดยพื้นฐานแล้ว จากชื่อ"SQL 2017 บน Linux และ Windows" เราสามารถทราบได้ว่าจุดประสงค์หลักของการอัปเกรดนี้คือการสนับสนุนการเปิดตัวผลิตภัณฑ์บนแพลตฟอร์ม Linux ต่อไปนี้คือ คุณสมบัติหลักบางประการของ "SQL บน Linux":

  1. ความสามารถในการจัดเก็บฐานข้อมูลหลัก
  2. รองรับ IPV6
  3. รองรับ NFS
  4. ยืนยันโฆษณาบน linux
  5. รองรับการเข้ารหัส
  6. สามารถติดตั้ง SSIS บน Linux ได้
  7. มีเครื่องมือคำสั่ง MSSQL-conf
  8. ลดขนาดและเปิดเสรีกระบวนการติดตั้ง
  9. SQL สำหรับ Visual Studio core (VS core พร้อมใช้งานบน Linux)
  10. ตัวสร้างสคริปต์ข้ามแพลตฟอร์ม

สรุป

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

ดูเพิ่มเติม:

  1. 7 วิธีในการเรียกใช้ซอฟต์แวร์ Linux บน Windows
  2. 8 ความแตกต่างหลักระหว่าง Windows และ Linux
  3. วิธีการเข้าสู่ระบบฐานข้อมูลบน MS SQL Server
  4. วิธีการเริ่มและหยุดบริการใน MS SQL Server