Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> ฐานข้อมูล

Oracle 21c คุณสมบัติใหม่

ฐานข้อมูล Oracle 21c ขับเคลื่อนบริการฐานข้อมูล Oracle ในโครงสร้างพื้นฐานภายในองค์กรและคลาวด์ รวมถึงฐานข้อมูลอัตโนมัติ (ADB), Oracle Exadata service@customer และเครื่อง Oracle Exadata

Oracle เวอร์ชันล่าสุดประกอบด้วยเคสใหม่ ประสิทธิภาพการเพิ่มประสิทธิภาพอัตโนมัติ รองรับข้อมูล JSON และโมเดลกราฟ ฟีเจอร์การทำงานอัตโนมัติทำให้ชีวิตง่ายขึ้นสำหรับทั้งผู้ใช้และนักพัฒนา รองรับโมเดลข้อมูล ปริมาณงาน รวมถึงความสามารถในการเรียนรู้ของเครื่องในตัว และอื่นๆ เพื่อขจัดความต้องการบริการที่แยกจากกัน Oracle 21c เปิดใช้งาน SQL, REST และ API ธุรกรรมในโมเดลข้อมูลทุกประเภท

สถาปัตยกรรม 21c

สถาปัตยกรรมฐานข้อมูล Oracle เหมือนกับเวอร์ชันเก่า ประกอบด้วยอินสแตนซ์ฐานข้อมูล Oracle และฐานข้อมูล Oracle ดังแสดงในแผนภาพต่อไปนี้

ที่มาของภาพ

ฐานข้อมูล Oracle 21c สถาปัตยกรรมทางเทคนิค:

สถาปัตยกรรมแบบหลายผู้เช่าประกอบด้วยไฟล์กายภาพที่เรียกว่า datafiles และอินสแตนซ์ฐานข้อมูลประกอบด้วยโครงสร้างหน่วยความจำ (SGA ที่รู้จักในชื่อ Shared Global Area &PGA) และกระบวนการพื้นหลังเพื่อดำเนินการต่างๆ เช่น ดำเนินการค้นหาในนามของผู้ใช้ด้วยความช่วยเหลือของกระบวนการเซิร์ฟเวอร์ ดึงข้อมูลจาก ดิสก์, การเขียนข้อมูลใน datafiles หรือทำซ้ำไฟล์บันทึก, จัดเก็บแผนการดำเนินการและอื่น ๆ

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

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

คุณสมบัติของ Oracle 21c

รุ่น 21c รองรับทุกประเภทข้อมูลเช่น Relational, JSON, XML, spatial graph, OLAP เป็นต้น และให้ประสิทธิภาพ ความสามารถในการขยาย ความพร้อมใช้งาน และความปลอดภัยที่สูงขึ้นแก่ปริมาณงานทุกประเภท เช่น ปริมาณงานเชิงวิเคราะห์ การปฏิบัติงาน และแบบผสม ดังที่แสดงในภาพต่อไปนี้

ที่มาของภาพ

1) ตารางบล็อคเชน:

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

ที่มาของภาพ

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

2) ประเภทข้อมูล JSON ดั้งเดิม:

มันเก็บข้อมูล JSON เป็น ARCHAR2 หรือ LOB (CLOB หรือ BLOB) ซึ่งช่วยให้นักพัฒนาสร้างแอปพลิเคชันที่มีความยืดหยุ่นของรูปแบบการออกแบบที่ไม่มีสคีมา ตัวอย่างเช่น ผู้ใช้สามารถสืบค้นเอกสาร JSON ด้วย SQL และใช้ประโยชน์จากการวิเคราะห์ขั้นสูง จัดทำดัชนีแอตทริบิวต์แต่ละรายการหรือเอกสารทั้งหมด และประมวลผลเอกสาร JSON หลายพันล้านรายการพร้อมกัน ใน Oracle Database 21c การรองรับ JSON ได้รับการปรับปรุงเพิ่มเติมโดยนำเสนอประเภทข้อมูลดั้งเดิม "JSON"

ซึ่งหมายความว่าแทนที่จะต้องแยกวิเคราะห์ JSON ในการดำเนินการอ่านหรืออัปเดต การแยกวิเคราะห์จะเกิดขึ้นที่ส่วนแทรกเท่านั้น จากนั้น JSON จะถูกจัดไว้ในรูปแบบไบนารีภายใน ซึ่งทำให้เข้าถึงได้เร็วขึ้นมาก ซึ่งอาจส่งผลให้การดำเนินการอ่านและอัปเดตเร็วขึ้น 4 หรือ 5 เท่า และอัปเดตเอกสาร JSON ขนาดใหญ่มากเร็วขึ้น 20 ถึง 30 เท่า

CREATE TABLE j_order

(

id INTEGER PRIMARY KEY,

po_doc JSON

);

ประเภทข้อมูลใหม่ไม่ได้เป็นเพียงการเปลี่ยนแปลงเดียวที่นำมาใช้สำหรับ JSON ใน Oracle Database 21c แต่ Oracle ยังเพิ่มฟังก์ชัน JSON ใหม่ JSON_TRANSFORM ซึ่งทำให้การอัปเดตและลบแอตทริบิวต์หลายรายการในเอกสารในการดำเนินการเดียวทำได้ง่ายขึ้นมาก

                                        UPDATE j_order SET po_doc = JSON_TRANSFORM( po_doc,
                                        SET '$.address.city' = 'Santa Cruz',
                                        REMOVE'$.phones[*]?(@.type == "office")
                                      )
                                      WHERE id = 555;

3) การเรียกใช้ JavaScript ภายในฐานข้อมูล Oracle:

มันใช้ Multi Language Engine (MLE) เพื่อรันโค้ดจาวาสคริปต์ภายในฐานข้อมูลด้วยแพ็คเกจ PL/SQL ใหม่ที่เรียกว่า:DBMS_MLE เอ็มแอลอี จาวาสคริปต์ช่วยให้การโต้ตอบกับผู้ใช้สมบูรณ์ยิ่งขึ้นในเว็บแอปพลิเคชันและแอปบนอุปกรณ์เคลื่อนที่ เป็นหนึ่งในไม่กี่ภาษาที่ทำงานในเว็บเบราว์เซอร์และสามารถใช้ในการพัฒนาทั้งเซิร์ฟเวอร์และโค้ดฝั่งไคลเอ็นต์

มีไลบรารี JavaScript ที่มีอยู่จำนวนมากสำหรับการนำโปรแกรมที่ซับซ้อนไปใช้ และ JavaScript ทำงานร่วมกับเทคโนโลยีการพัฒนายอดนิยม เช่น JSON และ REST ในนักพัฒนา Oracle 21c สามารถเรียกใช้โค้ดจาวาสคริปต์ภายในฐานข้อมูลที่มีข้อมูลอยู่ ช่วยให้พวกเขาดำเนินการงานคอมพิวเตอร์สั้น ๆ ที่เขียนด้วยจาวาสคริปต์โดยไม่ต้องย้ายข้อมูลไปยังเบราว์เซอร์ระดับกลาง MLE จะจับคู่ประเภทข้อมูลสคริปต์ Java กับประเภทข้อมูล Oracle Database โดยอัตโนมัติ และในทางกลับกัน และนักพัฒนาไม่จำเป็นต้องดูแลการแปลงประเภทข้อมูล

นอกจากนี้ จาวาสคริปต์ยังสามารถรัน PL/SQL และ SQL ผ่านโมดูลจาวาสคริปต์ในตัว ทั้งหมดนี้ทำให้นักพัฒนา APEX สามารถใช้จาวาสคริปต์เป็นภาษาชั้นหนึ่งภายในแอป APEX ของตน โดยไม่สูญเสียพลังของ PL/SQL และ SQL ใน JavaScript คุณสามารถเข้าถึงฐานข้อมูล – ตารางและมุมมอง – ผ่าน SQL ปกติ ต่อไปนี้จะแสดงให้เห็นวิธีเขียนโค้ดในจาวาสคริปต์

ประกาศ

ctx dbms_mle.context_handle_t;

เริ่มต้น

ctx :=dbms_mle.create_context(); – สร้างบริบทการดำเนินการสำหรับการดำเนินการ MLE

dbms_mle.eval(ctx, 'JAVASCRIPT', 'console.log(Hello from JavaScript )'); – ประเมินซอร์สโค้ด

ข้อมูลโค้ดในบริบทการดำเนินการ

dbms_mle.drop_context(ctx); –

ยกเลิกบริบทการดำเนินการเมื่อไม่ต้องการอีกต่อไป

หมายเหตุ :ตราบใดที่บริบทยังคงอยู่ จะเก็บค่าของอ็อบเจกต์ส่วนกลางรวมถึง functionsend;

4) มาโคร SQL:

เป็นเรื่องปกติที่แบบสอบถาม SQL จะมีความซับซ้อนเนื่องจากไม่มี ของการรวมเพิ่มขึ้นหรือการดึงข้อมูลเข้ามาเกี่ยวข้องมากขึ้น &นักพัฒนาแก้ปัญหานี้โดยใช้ขั้นตอนและฟังก์ชันที่เก็บไว้เพื่อทำให้การดำเนินการเหล่านี้ง่ายขึ้น แต่สามารถลดประสิทธิภาพได้เนื่องจากเอ็นจิน SQL สลับบริบทด้วย PL/SQL Engine ใน Oracle 21c มาโคร SQL แก้ปัญหานี้โดยอนุญาตให้นิพจน์ SQL และฟังก์ชันตารางถูกแทนที่ด้วยการเรียกไปยังกระบวนงานที่เก็บไว้ซึ่งส่งคืนสตริงตามตัวอักษรที่จะแทรกใน SQL ที่คุณต้องการดำเนินการ

5) การเพิ่มประสิทธิภาพในหน่วยความจำ:

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

ก. การรวมเวกเตอร์ในหน่วยความจำของฐานข้อมูล:

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

ข. การจัดเก็บคอลัมน์ในหน่วยความจำที่จัดการตนเอง:

เมื่อฐานข้อมูลในหน่วยความจำของ Oracle ออก ผู้ใช้ต้องประกาศคอลัมน์ที่บรรจุลงในที่เก็บคอลัมน์หน่วยความจำอย่างชัดเจน ซึ่งจะทำให้ผู้ใช้ควบคุมได้ดีหากหน่วยความจำแน่น

ในฐานข้อมูล 18c ได้แนะนำฟังก์ชันการทำงานที่จะวางอ็อบเจ็กต์ใน Column Store โดยอัตโนมัติ หากมีการใช้และเอาอ็อบเจ็กต์ที่ไม่ได้ใช้งานออก อย่างไรก็ตาม ผู้ใช้ยังต้องระบุวัตถุที่จะต้องพิจารณา

ใน Oracle Database 21c การตั้งค่า INMEMORY_AUTOMATIC_LEVEL เป็น HIGH จะทำให้แน่ใจว่าอ็อบเจ็กต์ทั้งหมดได้รับการพิจารณา ซึ่งจะทำให้งานจัดการที่เก็บคอลัมน์ในหน่วยความจำง่ายขึ้น

ค. การสแกนคอลัมน์ไฮบริดในหน่วยความจำ:

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

ใน Oracle Database In-Memory รุ่นก่อนหน้า การสืบค้นดังกล่าวจะทำงานโดยเทียบกับที่จัดเก็บแถว ใน Oracle Database 21c ผู้ใช้สามารถใช้ทั้งสองอย่างได้แล้ว! เครื่องมือเพิ่มประสิทธิภาพสามารถเลือกสแกนที่เก็บคอลัมน์ในหน่วยความจำและดึงค่าคอลัมน์ที่คาดการณ์ไว้จากที่เก็บแถวได้ หากจำเป็น ซึ่งอาจส่งผลให้มีการปรับปรุงประสิทธิภาพอย่างมีนัยสำคัญ

ที่มาของภาพ

บทสรุป

ผลประโยชน์โดยรวมสามารถสรุปได้ดังนี้:

1) มีการปรับปรุงประสิทธิภาพการสืบค้นของฐานข้อมูลอย่างมีนัยสำคัญ

2) รุ่น 21’c รองรับข้อมูลทุกประเภท เช่น JSON, XML และ OLAP

3) ปรับขนาดได้อย่างมาก มีความพร้อมใช้งานสูง และให้ความปลอดภัยแก่ปริมาณงานทั้งหมด เช่น OLTP การสืบค้นเฉพาะกิจ และคลังข้อมูล

4) รองรับปริมาณงานทั้งแบบปฏิบัติการและแบบผสม

5) ใน 21C มีหลายสิ่งหลายอย่างที่เป็นไปโดยอัตโนมัติ เช่น การสแกนแบบขนาน การสำรองข้อมูลออนไลน์ ฯลฯ ทำให้นักพัฒนาไม่ต้องกังวลว่าข้อมูลจะคงอยู่

6) คุณลักษณะด้านประสิทธิภาพได้รับการขยายโดยอัตโนมัติไปจนถึงขนาดใหญ่ พร้อมด้วยคุณลักษณะต่างๆ เช่น การจัดทำดัชนีอัตโนมัติ

ใช้แท็บคำติชมเพื่อแสดงความคิดเห็นหรือถามคำถาม คุณสามารถเริ่มการสนทนากับเราได้เช่นกัน