หนึ่งในความท้าทายสำหรับตัวเลือกการพัฒนามากมายคือการหาว่าตัวเลือกใดเหมาะสมที่สุดสำหรับ สถานการณ์เฉพาะ- ทุกคนต้องการความยืดหยุ่นสูงสุด (มีตัวเลือกให้มากที่สุด) แต่ในขณะเดียวกัน ทุกอย่างก็เรียบง่ายและชัดเจน Oracle ให้ทางเลือกแก่นักพัฒนาอย่างไม่จำกัด ไม่มีใครเคยพูดว่า: สิ่งนี้ไม่สามารถทำได้ใน Oracle; พวกเขาพูดแตกต่างออกไป: คุณต้องทำเช่นนี้ใน Oracle กี่วิธี? - ฉันหวังว่าหนังสือเล่มนี้จะช่วยให้คุณตัดสินใจได้ถูกต้อง
หนังสือเล่มนี้เหมาะสำหรับผู้ที่ยินดีกับเสรีภาพในการเลือก แต่ต้องการรับคำแนะนำและเรียนรู้เฉพาะเจาะจงของการนำวิธีการบางอย่างไปใช้และ ฟังก์ชันของออราเคิล- ตัวอย่างเช่น Oracle DBMS มอบความสามารถที่ยอดเยี่ยมในการสร้างฐานข้อมูลส่วนตัวเสมือน เอกสารของ Oracle อธิบายวิธีใช้คุณสมบัตินี้และประโยชน์ของคุณสมบัตินี้ อย่างไรก็ตาม เอกสารไม่ได้ระบุว่าควรใช้เมื่อใด และที่สำคัญกว่านั้นคือเมื่อใดไม่ควรใช้ เอกสารประกอบไม่ได้ให้รายละเอียดการใช้งานสำหรับคุณลักษณะเฉพาะเสมอไป และหากไม่ทราบ อาจขัดขวางคุณโดยไม่คาดคิด - มันเกี่ยวกับไม่เกี่ยวกับข้อผิดพลาด แต่เกี่ยวกับวิธีการทำงานที่ตั้งใจไว้และวัตถุประสงค์ดั้งเดิมของวิธีการที่เกี่ยวข้อง)
หนังสือเล่มนี้เหมาะกับใคร?
กลุ่มเป้าหมายคือนักพัฒนาแอปพลิเคชันทั้งหมดสำหรับ Oracle ในฐานะเซิร์ฟเวอร์ฐานข้อมูล หนังสือเล่มนี้เขียนขึ้นเพื่อ นักพัฒนามืออาชีพ Oracle สนใจวิธีแก้ปัญหาโดยใช้ DBMS นี้ แนวทางการปฏิบัติของหนังสือเล่มนี้หมายความว่าหลายส่วนจะเป็นประโยชน์อย่างมากสำหรับผู้ดูแลระบบฐานข้อมูล (DBA) โดยส่วนใหญ่จะมีตัวอย่างที่ให้ไว้ในหนังสือเพื่อสาธิต ความสามารถที่สำคัญมีการใช้ยูทิลิตี้ SQL*Plus ดังนั้นคุณจะไม่สามารถเรียนรู้วิธีการพัฒนาอินเทอร์เฟซผู้ใช้แบบกราฟิกที่สะดวกและสวยงามได้จากยูทิลิตี้นี้ แต่คุณจะได้เรียนรู้วิธีการทำงานของ Oracle DBMS เครื่องมือหลักทำอะไรได้บ้าง และเมื่อใด คุณควร (และไม่ควรทำ) ใช้มัน
หนังสือเล่มนี้มีไว้สำหรับผู้ที่ต้องการรับประโยชน์เพิ่มเติมจาก Oracle DBMS โดยใช้ความพยายามน้อยลง เหมาะสำหรับใครก็ตามที่ต้องการทราบว่าเครื่องมือของ Oracle สามารถนำไปใช้งานจริงได้อย่างไร (ไม่เพียงแต่ให้ตัวอย่างวิธีการใช้เครื่องมือเฉพาะเท่านั้น แต่ยังอธิบายว่าทำไมเครื่องมือนี้จึงมีความจำเป็น) บุคคลอีกประเภทหนึ่งที่จะพบว่าหนังสือเล่มนี้น่าสนใจคือผู้จัดการด้านเทคนิคของทีมพัฒนาที่ดำเนินโครงการต่างๆ ฐานข้อมูลออราเคิล- ในบางประเด็น สิ่งสำคัญมากคือพวกเขาต้องรู้คุณลักษณะของ DBMS ที่เป็นพื้นฐานของการพัฒนาที่ประสบความสำเร็จ หนังสือเล่มนี้สามารถให้ข้อมูลเชิงลึกเพิ่มเติมสำหรับผู้จัดการโครงการที่ต้องการฝึกอบรมพนักงานเกี่ยวกับเทคโนโลยีที่จำเป็น หรือให้แน่ใจว่านักพัฒนารู้อยู่แล้วว่าพวกเขาจำเป็นต้องรู้อะไรบ้าง
เพื่อให้ได้รับประโยชน์สูงสุดจากหนังสือเล่มนี้ ผู้อ่านควร:
O รู้ภาษา SQL มันไม่จำเป็นต้องเป็น ผู้เชี่ยวชาญที่ดีที่สุดใน SQL ในประเทศ แต่ความรู้เชิงปฏิบัติที่ดีจะช่วยได้มาก
เข้าใจโปรแกรม! ในภาษา PL/SQL นี่ไม่ใช่ข้อกำหนด แต่ความรู้เกี่ยวกับ PL/SQL จะช่วยให้คุณเข้าใจตัวอย่างต่างๆ ตัวอย่างเช่นหนังสือเล่มนี้ไม่ได้อธิบายวิธีการสร้าง สำหรับลูปหรือประกาศประเภทบันทึก - มีการเขียนเพียงพอในเอกสารของ Oracle และในหนังสือหลายเล่ม อย่างไรก็ตาม นั่นไม่ได้หมายความว่าคุณจะไม่ได้เรียนรู้อะไรมากมายเกี่ยวกับการเขียนโปรแกรม PL/SQL จากการอ่านหนังสือเล่มนี้ คุณจะพบว่า คุณจะคุ้นเคยอย่างใกล้ชิดกับคุณสมบัติต่างๆ ของ PL/SQL และเรียนรู้วิธีใหม่ๆ ในการแก้ปัญหา แพ็คเกจ และเครื่องมือที่คุณอาจไม่เคยรู้มาก่อน
มีประสบการณ์เกี่ยวกับภาษาโปรแกรมขั้นตอนเช่น C หรือ Java ฉันมั่นใจว่าใครก็ตามที่สามารถเข้าใจและเขียนโค้ดในภาษาการเขียนโปรแกรมขั้นตอนใดๆ จะสามารถเข้าใจตัวอย่างที่นำเสนอในหนังสือได้สำเร็จ
อ่านคู่มือแนวคิด Oracle Server
คำไม่กี่คำเกี่ยวกับคู่มือนี้ เนื่องจากมีปริมาณมาก ผู้คนจำนวนมากจึงถูกคุกคามจากเอกสารของ Oracle หากคุณเพิ่งเริ่มต้นด้วยบทช่วยสอนหรือไม่เคยอ่านเอกสารประเภทนี้มาก่อน ฉันขอแนะนำให้เริ่มต้นด้วย OracleSi Concepts มีความยาวประมาณ 800 หน้าและครอบคลุมแนวคิดพื้นฐานของ Oracle หลายประการที่คุณต้องรู้ คู่มือนี้ไม่ครอบคลุมรายละเอียดด้านเทคนิคทั้งหมด (นั่นคือสิ่งที่เอกสารอีก 10,000-20,000 หน้ามีไว้สำหรับ) แต่จะแนะนำแนวคิดที่สำคัญทั้งหมด คู่มือนี้ครอบคลุมแต่ไม่จำกัดเพียงหัวข้อต่อไปนี้:
โครงสร้างฐานข้อมูล การจัดองค์กร และการจัดเก็บข้อมูล
การประมวลผลแบบกระจาย
สถาปัตยกรรมหน่วยความจำออราเคิล
สถาปัตยกรรมกระบวนการของออราเคิล;
อ็อบเจ็กต์สคีมาของผู้ใช้ (ตาราง ดัชนี คลัสเตอร์ ฯลฯ)
ชนิดข้อมูลในตัวและที่ผู้ใช้กำหนด
ขั้นตอนการจัดเก็บ
คุณสมบัติขององค์กรธุรกรรม
เครื่องมือเพิ่มประสิทธิภาพ;
ความสมบูรณ์ของข้อมูล
การควบคุมการทำงานพร้อมกัน
ฉันเองก็อ่านบทที่เกี่ยวข้องซ้ำเป็นระยะ สิ่งเหล่านี้เป็นแนวคิดพื้นฐาน หากคุณไม่เข้าใจสิ่งเหล่านั้น สิ่งที่คุณสร้างขึ้น แอปพลิเคชันของออราเคิลจะถึงวาระที่จะล้มเหลว ฉันขอแนะนำให้อ่านคู่มือนี้และทำความเข้าใจกับสิ่งที่สำคัญที่สุดเป็นอย่างน้อย
โครงสร้างหนังสือ
เพื่อให้เข้าใจได้ง่ายขึ้น หนังสือเล่มนี้จึงแบ่งออกเป็น 6 เล่ม แต่ละส่วน(อธิบายไว้ด้านล่าง) สิ่งเหล่านี้ไม่ได้เป็นเพียงหน่วยโครงสร้างเท่านั้น แต่ยังช่วยให้คุณค้นหาข้อมูลที่สำคัญที่สุดได้อย่างรวดเร็ว หนังสือเล่มนี้ประกอบด้วย 23 บท โดยแต่ละบทเป็นหนังสือเล่มเล็ก ซึ่งเกือบจะเป็นส่วนประกอบที่แยกจากกัน ในบางครั้ง ฉันอ้างถึงตัวอย่างหรือคุณลักษณะที่อธิบายไว้ในบทอื่นๆ (เช่น ส่วนความปลอดภัย อาศัยตัวอย่างและแนวคิดที่นำเสนอในบทอื่นๆ เป็นอย่างมาก) แต่ตามกฎแล้ว มันค่อนข้างเป็นไปได้ที่จะอ่านบทแยกจากส่วนที่เหลือของหนังสือ ตัวอย่างเช่น คุณไม่จำเป็นต้องอ่านบทที่ 10 เพื่อทำความเข้าใจบทที่ 14
รูปแบบและรูปแบบของบทเกือบจะเหมือนกัน:
การแนะนำคุณสมบัติหรือความสามารถที่อธิบายไว้
เหตุใดคุณจึงควร (หรือไม่ควร) ใช้มัน ฉันกำลังอธิบายสถานการณ์เมื่อ
สมเหตุสมผลที่จะใช้ วิธีการรักษานี้และเมื่อใดที่จะไม่ทำเช่นนี้
วิธีการใช้งาน นี่ไม่ใช่แค่คำพูดจากคู่มืออ้างอิงภาษา -
ku SQL และ คำอธิบายทีละขั้นตอน: นี่คือสิ่งที่จำเป็น สิ่งที่ต้องทำเพื่อสิ่งนี้ และนี่คือข้อกำหนดเบื้องต้นสำหรับการใช้งาน ในส่วนนี้ครอบคลุมถึง:
วิธีการใช้วิธีการรักษาหรือเทคนิคนี้หรือนั้น
ตัวอย่าง ตัวอย่าง และตัวอย่างเพิ่มเติม
การดีบัก ค้นหาข้อผิดพลาดระหว่างการใช้งาน
ข้อผิดพลาดเมื่อใช้ผลิตภัณฑ์
การกำจัดข้อผิดพลาด (เชิงป้องกัน)
เกี่ยวกับสรุปสรุปการพิจารณา
หนังสือเล่มนี้ประกอบด้วยตัวอย่างมากมายและมีโค้ดจำนวนมาก ซึ่งทั้งหมดนี้สามารถดาวน์โหลดได้ที่ http: www.wrox.com ต่อไปนี้เป็นบทสรุปโดยละเอียดของแต่ละส่วน
แนวคิดพื้นฐาน
บทที่ 1 การพัฒนาแอปพลิเคชันที่ประสบความสำเร็จสำหรับ Oracle บทนี้อธิบายแนวทางพื้นฐานของฉันในการเขียนโปรแกรมฐานข้อมูล DBMS ทั้งหมดได้รับการออกแบบแตกต่างกัน และเพื่อที่จะพัฒนาแอปพลิเคชันที่ใช้ฐานข้อมูลได้สำเร็จและตรงเวลา คุณจำเป็นต้องทราบอย่างชัดเจนว่า DBMS ของคุณอนุญาตให้คุณทำอะไรได้บ้างและทำอย่างไร หากไม่ทราบถึงความสามารถของ DBMS คุณจะเสี่ยงต่อการสร้างวงล้อขึ้นมาใหม่อีกครั้ง นั่นคือการสร้างเครื่องมือที่ฐานข้อมูลเตรียมไว้ให้แล้ว หากคุณไม่รู้ว่า DBMS ทำงานอย่างไร คุณก็มีแนวโน้มที่จะสร้างแอปพลิเคชันที่ไม่มีประสิทธิภาพและคาดเดาไม่ได้
บทนี้จะอธิบายหลายประการ การใช้งานจริงในระหว่างการสร้างซึ่งการขาดความเข้าใจในแนวคิดพื้นฐานของ DBMS นำไปสู่ความล้มเหลวของโครงการทั้งหมด จากแนวทางปฏิบัตินี้พร้อมตัวอย่างแย้ง บทนี้จะอธิบายความสามารถพื้นฐานและฟังก์ชันของ DBMS ที่ต้องทำความเข้าใจ
[ 1 ] ... |
เล่นเพื่อเงินออนไลน์ http://asino-zeon.com/ ทั้งหมดเกี่ยวกับโบนัส
เพื่อการใช้งานที่เหมาะสม ออราเคิลจำเป็นต้องมีความเข้าใจที่ดี ภาษา SQL- ดี " ออราเคิล การเขียนโปรแกรมใน SQL, PL/SQL และ Java“เผยให้เห็น เต็มสเปกตรัมความสามารถของภาษา SQL ใน Oracle และคุณลักษณะหลายประการที่ไม่ชัดเจนในการสร้างการออกแบบฐานข้อมูลมาตรฐาน
- PL/SQL - ภาษาขั้นตอนพัฒนาโดย Oracle สำหรับการเขียนรูทีนย่อยที่จัดเก็บไว้ในฐานข้อมูล PL/SQL จัดให้ พื้นดินทั่วไปการเขียนโปรแกรมตามขั้นตอนในแอปพลิเคชันทั้งฝั่งไคลเอ็นต์และฝั่งเซิร์ฟเวอร์ รวมถึงรูทีนบนเซิร์ฟเวอร์ แพ็คเกจ และทริกเกอร์ฐานข้อมูล
- ชวา - ภาษาวัตถุซึ่งสามารถใช้ในการทำงานร่วมกับ Oracle ในการกำหนดค่าที่หลากหลาย รวมถึงต้องขอบคุณกลไก Java ในตัวของ Oracle ซึ่งเป็นภาษาที่สองสำหรับขั้นตอนการจัดเก็บ Java เป็นแพลตฟอร์มที่เป็นอิสระและสามารถให้บริการได้ วิธีที่มีประสิทธิภาพการรวมฐานข้อมูล Oracle เข้ากับแอปพลิเคชันอื่น ๆ รวมถึงอินเทอร์เน็ต
หลักสูตรนี้มาพร้อมกับแบบฝึกหัดภาคปฏิบัติที่ช่วยให้คุณสามารถรวบรวมความเข้าใจเกี่ยวกับแนวคิดพื้นฐานและเชี่ยวชาญพื้นฐานได้ เทคนิคการเขียนโปรแกรมในภาษา SQL, PL/SQL และ Java
เมื่อจบหลักสูตรแล้วผู้ฟังได้รับโอกาส การเขียนโปรแกรมด้วยตนเอง Oracle ในสามภาษานี้เพื่อแก้ไขปัญหาการพัฒนาแอปพลิเคชันในสถาปัตยกรรมไคลเอนต์-เซิร์ฟเวอร์และในสถาปัตยกรรมสามระดับตลอดจนงานการดูแลฐานข้อมูล
ข้อแตกต่างที่สำคัญระหว่างหลักสูตรนี้กับหลักสูตรอื่นๆ ที่มีหัวข้อคล้ายกันคือเป้าหมายคือการสอนนักเรียนที่เฉพาะเจาะจง งานจริงกับ Oracle ในภาษาเหล่านี้ แทนที่จะอ่านโปรแกรมอย่างเป็นทางการที่จัดทำโดยบุคคลที่สาม
หลักสูตรนี้มีจุดมุ่งหมายสำหรับนักพัฒนา โปรแกรมเมอร์ และผู้ดูแลฐานข้อมูล ผู้ฟังก็ต้องมี ระดับดีความรู้ด้านคอมพิวเตอร์และประสบการณ์การเขียนโปรแกรม
ความรู้จะได้รับตามเวอร์ชันต่อไปนี้:
- ออราเคิลฐานข้อมูล 8i
- ออราเคิลฐานข้อมูล 9i
- ฐานข้อมูลออราเคิล 10g
- ฐานข้อมูลออราเคิล 11g
- ฐานข้อมูลออราเคิล 12c
โปรแกรมหลักสูตร "Oracle การเขียนโปรแกรมใน SQL, PL/SQL และ Java"
ความรู้เบื้องต้นเกี่ยวกับ Oracle SQL
1. แนวคิดพื้นฐาน
- ฐานข้อมูลและแบบจำลองเชิงสัมพันธ์
- ฐานข้อมูล
- แนวทางเชิงสัมพันธ์เพื่อการสร้างแบบจำลองข้อมูล
- การนำไปปฏิบัติ DBMS เชิงสัมพันธ์
แนวทางอื่นๆ ในการสร้างแบบจำลองข้อมูลและ DBMS ประเภทอื่นๆ - เอสแอลแอลคืออะไร?
- ประวัติศาสตร์และมาตรฐาน
- ภาษาถิ่นของ Oracle SQL
- พีแอล/เอสคิวแอล
2. SQL*Plus และการป้อนประโยคใน SQL
3. ตัวอย่างฐานข้อมูล "สคีมา"
4. การสร้าง ลบตาราง และการเปลี่ยนโครงสร้าง
- สร้างคำสั่งตาราง
- ชนิดข้อมูลคอลัมน์
- การชี้แจงในคำอธิบายคอลัมน์
- บ่งชี้ไม่เป็นโมฆะ
- ค่าเริ่มต้น
- การตรวจสอบ CHECK ค่าที่เข้าสู่ตาราง
- การสร้างตารางตามผลลัพธ์ของการสืบค้นฐานข้อมูล
- การตั้งชื่อตารางและคอลัมน์
- คอลัมน์เสมือน
- การถอดตาราง
- การเปลี่ยนโครงสร้างตาราง
- ตรรกะและ คุณสมบัติทางเทคนิคลบคอลัมน์
- การใช้คำพ้องความหมายในการตั้งชื่อตาราง
- กำลังเปลี่ยนชื่อ
- ข้อมูลอ้างอิงเกี่ยวกับตารางในฐานข้อมูล
5. องค์ประกอบพื้นฐานของประโยค DML: นิพจน์
- ค่าข้อมูลทันที (ตัวอักษร)
- ค่าตัวเลข
- บรรทัดข้อความ
- ช่วงเวลาและช่วงเวลา
- “ตัวแปรของระบบ”
- นิพจน์ตัวเลข
- การแสดงออกเหนือบรรทัดข้อความ
- นิพจน์เหนือประเภท "ช่วงเวลา"
- ฟังก์ชั่น
- ฟังก์ชันสเกลาร์
- นิพจน์ CASE
- แบบสอบถามแบบสเกลาร์
- นิพจน์แบบมีเงื่อนไข
- หมายเหตุพิเศษเกี่ยวกับค่าที่หายไปในนิพจน์
6. การสุ่มตัวอย่างข้อมูล
- วลีส่วนคำสั่ง SELECT
- กฎทั่วไปสำหรับการสร้างส่วนคำสั่ง SELECT
- วิธีการประมวลผลส่วนคำสั่ง SELECT
- ตัวอย่างคำสั่ง SELECT 1
- ตัวอย่างที่ 2 ส่วนคำสั่ง SELECT
- ความสมบูรณ์ทางตรรกะของการประมวลผลส่วนคำสั่ง SELECT
- จากส่วนคำสั่งของส่วนคำสั่ง SELECT
- ตัวเลือกคอลัมน์
- คอลัมน์จากตารางต่างๆ
- การใช้นามแฝงในการร้องขอ
- แบบสอบถามย่อยเป็นแหล่งข้อมูล
- กรณีพิเศษสำหรับการร้องขอการเชื่อมต่อ
- WHERE ส่วนคำสั่งของส่วนคำสั่ง SELECT
- อัลกอริธึมทั่วไปสำหรับการประมวลผลวลี WHERE
- ตัวดำเนินการเปรียบเทียบเพื่อให้ได้นิพจน์แบบมีเงื่อนไข
- AND, OR และ NOT การเชื่อมต่อสำหรับการรวมนิพจน์แบบมีเงื่อนไข
- ตัวดำเนินการแบบมีเงื่อนไข IS
- ตัวดำเนินการ LIKE แบบมีเงื่อนไข
- ตัวดำเนินการแบบมีเงื่อนไข BETWEEN
- ตัวดำเนินการ IN แบบมีเงื่อนไขพร้อมชุดที่นับได้อย่างชัดเจน
- ตัวดำเนินการแบบมีเงื่อนไข IN พร้อมชุดที่ได้รับจากฐานข้อมูล
- เงื่อนไขการเปรียบเทียบกับแบบสอบถามย่อย
- การระบุ ANY และ ALL เพื่อเปรียบเทียบกับองค์ประกอบของชุดค่า
- ตัวดำเนินการแบบมีเงื่อนไขมีอยู่
- ส่วนคำสั่ง SELECT และฟังก์ชันในส่วนคำสั่ง SELECT
- ชวเลขสำหรับการเลือกกลุ่มคอลัมน์
- นิพจน์ในส่วนคำสั่ง SELECT
- แบบสอบถามย่อยในส่วนคำสั่ง SELECT
- คำชี้แจงที่แตกต่าง
- คุณสมบัติของพฤติกรรมมาตรฐาน ฟังก์ชันรวมในส่วนคำสั่ง SELECT
- การตั้งชื่อคอลัมน์ในผลลัพธ์แบบสอบถาม
- ฟังก์ชั่นระบบ ("ตัวแปร") ROWNUM และคุณสมบัติของการใช้งาน
- ฟังก์ชั่นการวิเคราะห์
- นิพจน์ประเภทการอ้างอิงถึงเคอร์เซอร์
- ORDER BY clause ของ SELECT clause
- การเรียงลำดับที่ง่ายที่สุด
- เรียงลำดับตามค่านิพจน์
- การระบุหมายเลขคอลัมน์
- การเรียงลำดับสตริงไบนารีและ "ภาษา"
- คุณสมบัติการจัดการค่าที่หายไป (NULL)
- จัดกลุ่มตามและมีส่วนคำสั่งของส่วนคำสั่ง SELECT
- ตัวอย่างการใช้วลี GROUP BY ... HAVING
- ไม่มีค่าในการจัดกลุ่มนิพจน์
- ตัวอย่างอื่นๆ
- การระบุ ROLLUP, CUBE และ GROUPING SETS ในส่วนคำสั่ง GROUP BY
- เชื่อมต่อโดยส่วนคำสั่งของส่วนคำสั่ง SELECT
- ฟังก์ชันระบบพิเศษในส่วนคำสั่งที่มี CONNECT BY
- การสั่งผล
- C ประโยคก่อนกำหนดของแบบสอบถามย่อย
- การรวมคำสั่ง SELECT
- รวมกับตัวดำเนินการ UNION
- รวมกับตัวดำเนินการ INTERSECT
- รวมกับตัวดำเนินการ MINUS
- แบบสอบถามย่อย
- เข้าร่วมการดำเนินการในส่วนคำสั่ง SELECT
- ประเภทของการเชื่อมต่อ
- ไวยากรณ์ใหม่ในเวอร์ชัน 9
- คุณสมบัติของการดำเนินการเชื่อมต่อ
7. การอัพเดตข้อมูลในตาราง
- การเพิ่มแถวใหม่
- การเพิ่มแถวอย่างชัดเจน
- การเพิ่มแถวที่ดึงมาจากแบบสอบถามย่อย
- การเพิ่มหลายตารางด้วยคำสั่งเดียว
- การเปลี่ยนแปลงค่าฟิลด์ที่มีอยู่
- การใช้ค่าเริ่มต้นใน INSERT และ UPDATE
- การลบแถวออกจากตาราง
- การลบแบบเลือก
- ตัวเลือกการกำจัดที่สมบูรณ์
- การรวม UPDATE, INSERT และ DELETE ไว้ในคำสั่งเดียว
- ความสมบูรณ์ทางตรรกะของตัวดำเนินการอัพเดตข้อมูลตารางและการตอบสนองต่อข้อผิดพลาด
- การตอบสนองต่อข้อผิดพลาดระหว่างการดำเนินการ
- บันทึกการเปลี่ยนแปลงในฐานข้อมูล
- ระบบเปลี่ยนข้อมูลหมายเลขสำหรับสาย
- เร่งการดำเนินการ COMMIT
8. เข้าถึงค่าข้อมูลที่ผ่านมาได้อย่างรวดเร็ว
- การอ่านค่าแถวตารางเก่า
- การกู้คืนตารางและข้อมูลจากตารางที่ถูกลบไปก่อนหน้านี้
9. ข้อจำกัดความสมบูรณ์ของวงจร
- ประเภทของข้อจำกัดความสมบูรณ์ของวงจร
- ไม่ใช่ข้อจำกัดที่เป็นโมฆะ
- คีย์หลัก
- ความเป็นเอกลักษณ์ของค่าในคอลัมน์
- กุญแจต่างประเทศ
- เงื่อนไขเพิ่มเติมสำหรับค่าในฟิลด์สตริง
- เงื่อนไขเพิ่มเติมที่เชื่อมโยงค่าในหลายช่องในแถว
- เพิ่มข้อจำกัดหากมีการฝ่าฝืน
- การระงับการตรวจสอบข้อจำกัดสคีมาภายในธุรกรรม
- ปิดใช้งานหรือเปิดใช้งานข้อจำกัดความสมบูรณ์ของวงจร
- เทคโนโลยีสำหรับการเปิดและปิดการใช้งานข้อจำกัดความสมบูรณ์ของวงจร
- มากกว่า กฎที่ซับซ้อนความซื่อสัตย์
10. ตารางเสมือน (ได้มา, แสดง: มุมมอง)
- ตารางพื้นฐาน ("หลัก") และตารางเสมือน
- กำลังอัปเดตตารางเสมือน
- ข้อจำกัดของการแก้ไขข้อมูลโดยตรงผ่านตารางเสมือน
- งดการอัพเดตทันที
- ลดความเป็นไปได้ในการอัปเดตทันที
- ตารางเสมือนพร้อมที่เก็บข้อมูล
- คุณสมบัติของตารางเสมือนที่มีชื่อ
- ตารางเสมือนที่ไม่มีชื่อโดยไม่มีการจัดเก็บข้อมูล
11. ประเภทที่ไม่ใช่สเกลาร์สำหรับข้อมูล "ซับซ้อน" ใน Oracle
- วัตถุที่เก็บไว้
- ตัวอย่างง่ายๆ
- การใช้คุณสมบัติและวิธีการของวัตถุ
- การใช้การอ้างอิงวัตถุ
- คอลเลกชัน
- ตารางที่ซ้อนกัน
- อาร์เรย์ VARRAY
- XMLTYPE
- ตัวอย่างง่ายๆ
- ตารางข้อมูล XMLTYPE
- การแปลงข้อมูลแบบตารางเป็น XMLTYPE
- พิมพ์ ANYDATA
12. ประเภทเสริมของวัตถุที่เก็บไว้
- เครื่องกำเนิดตัวเลขที่ไม่ซ้ำ
- ไดเร็กทอรีระบบปฏิบัติการ
- ตารางที่มีข้อมูลที่จัดเก็บชั่วคราว
- เชื่อมโยงไปยังฐานข้อมูลอื่น
- รูทีนย่อย
- ดัชนี
- ดัชนีสำหรับการตรวจสอบข้อจำกัดความสมบูรณ์ของวงจร
- โต๊ะด้วย ที่จัดเก็บข้อมูลภายนอกข้อมูล
13. หมายเหตุบางประการเกี่ยวกับการเพิ่มประสิทธิภาพคำสั่ง SQL
14. ธุรกรรมและการล็อค
- ธุรกรรมในออราเคิล
- ตัวอย่างการล็อคข้อมูลด้วยธุรกรรม
- ประเภทของล็อค
- การล็อกโดยนัยในการดำเนินการ DML
- ผลกระทบของคีย์ต่างประเทศ
- การล็อคตารางอย่างชัดเจน (ประเภท TM) ด้วยคำสั่ง LOCK
- ล็อคแถวของตารางแต่ละแถวอย่างชัดเจน
- รูปแบบการบล็อกกลุ่มที่ไม่มีเอกสาร
- การบล็อกโดยคำสั่ง DDL
15. ผู้ใช้ (สคีมา) และวิธีการเพิ่มเติมในการจำกัดการเข้าถึงข้อมูล
16. โต๊ะ ไดเร็กทอรีระบบ(หนังสืออ้างอิงพจนานุกรม)
18. SQL แบบฝัง
- ตัวอย่างการเขียนแบบสอบถามบางส่วน
19. ออกพนักงานตามเงินเดือนที่สูงขึ้น (ต่ำกว่า)
- คำถามถึงฐานข้อมูล
- "ชัดเจน" แต่วิธีแก้ปัญหาที่ผิด
- การตัดสินใจที่ถูกต้อง
- โซลูชัน Top-N (ตั้งแต่เวอร์ชัน 8.1.5)
- โซลูชันที่ใช้ฟังก์ชันการจัดอันดับเชิงวิเคราะห์
20. การจัดรูปแบบแบบสอบถามใหม่ด้วย HAVING
22. ไม่ใช่กับดักแบบมีเงื่อนไข
23. กับดักไม่อยู่ใน (S)
รู้เบื้องต้นเกี่ยวกับ PL/SQL
1. แนวคิดพื้นฐาน
- ตำแหน่งของ PL/SQL ในสถาปัตยกรรม Oracle
- โครงสร้างทั่วไปของโปรแกรม PL/SQL
2. ชนิดและโครงสร้างข้อมูลพื้นฐาน
- ตัวแปรสเกลาร์
- ประเภทตัวเลข
- ประเภทสตริง
- จุดเวลาและช่วงเวลา
- ตัวแปรบูลีน
- ประเภทลอบ
- การประกาศตัวแปรและค่าคงที่
- กระทู้
- การประกาศรายการในโปรแกรม
- การมอบหมายงาน
- ลิงก์ไปยังประเภทข้อมูลที่มีอยู่แล้ว
- ประเภทย่อยที่กำหนดเอง
3. สำนวน
4. โครงสร้างการควบคุมหลัก
- การแตกแขนงโปรแกรม
- ข้อเสนอ IF-THEN
- ประโยค IF-THEN-ELSE
- ข้อเสนอ IF-THEN-ELSIF
- ข้อเสนอของเคส
- การถ่ายโอนการควบคุมอย่างไม่มีเงื่อนไข
- รอบ
- วนซ้ำง่าย
- รอบการนับ (FOR)
- วนรอบเคอร์เซอร์ (FOR)
- ในขณะที่วนซ้ำ
- การจำลองวง REPEAT UNTIL
- ป้ายกำกับในรอบและบล็อก
5. รูทีนย่อย
- กิจวัตรในท้องถิ่น
- นิยามชื่อ "ภายนอก" ใหม่
- ประกาศส่งต่อ
- การซ้ำชื่อในระดับเดียวกัน (โอเวอร์โหลด)
- 6. การโต้ตอบกับฐานข้อมูล: SQL แบบคงที่
- การใช้บันทึกแทน (รายการ) สเกลาร์
7. ควบคุมการเปลี่ยนแปลงในฐานข้อมูล
- การจัดการธุรกรรม
- ล็อค
- การทำธุรกรรมอัตโนมัติ
8. SQL แบบไดนามิกในตัว
- คำสั่ง SQL แบบไดนามิกที่ฝังอยู่
- ตัวอย่างเปรียบเทียบของสองวิธีในการทำงานกับ SQL แบบไดนามิก
9. การใช้เคอร์เซอร์
- เคอร์เซอร์ที่ชัดเจน
- ประกาศเคอร์เซอร์ที่ชัดเจน
- การเปิดเคอร์เซอร์ที่ชัดเจน
- การดึงผลลัพธ์ผ่านเคอร์เซอร์ที่ชัดเจน
- การปิดเคอร์เซอร์ที่ชัดเจน
- ไม่มีข้อจำกัดในการเปลี่ยนแปลงตารางเมื่อเคอร์เซอร์เปิดอยู่
- คุณลักษณะสำหรับเคอร์เซอร์ที่ชัดเจน
- ตัวอย่างการใช้ลูปและเคอร์เซอร์
- เคอร์เซอร์ที่มีการล็อคแถวของตาราง
- SELECT ... สำหรับส่วนคำสั่ง UPDATE
- ข้อควรระวังในการใช้เคอร์เซอร์ล็อค
- ความสามารถในการเปลี่ยนบรรทัดที่เลือกโดยเคอร์เซอร์
- การอ้างอิงเคอร์เซอร์
- ข้อมูลทั่วไป
- ตัวอย่างการใช้จัดโครงสร้างโปรแกรม
- เคอร์เซอร์โดยนัย
10. การจัดการกับข้อยกเว้น
- การประกาศข้อยกเว้น
- ตัวอย่างการประมวลผล
- โยนข้อยกเว้น
- ความครอบคลุมและการจัดจำหน่าย
- ข้อยกเว้นบล็อก "ภายใน"
- การใช้ฟังก์ชัน SQLCODE และ SQLERRM
11. ขั้นตอนและฟังก์ชันที่เก็บไว้
- ไวยากรณ์ทั่วไป
- ตัวเลือก
- ประเภทพารามิเตอร์
- โหมดการใช้พารามิเตอร์
- ค่าเริ่มต้น
- วิธีระบุค่าจริงสำหรับพารามิเตอร์
- การเข้าถึงพารามิเตอร์และตัวแปรโลคัลในเนื้อความของรูทีนย่อย
- คำแนะนำสำหรับคอมไพลเลอร์เมื่อสร้างรูทีนย่อย
- กิจวัตรที่เก็บไว้และสิทธิ์การเข้าถึงข้อมูลในฐานข้อมูล
- สองตรรกะสำหรับการนำสิทธิ์การเข้าถึงข้อมูลฐานข้อมูลไปใช้
- คุณสมบัติของการโอนสิทธิ์ผ่านบทบาท
12. ขั้นตอนทริกเกอร์
- การสร้างขั้นตอนทริกเกอร์
- ปิดการใช้งานขั้นตอนทริกเกอร์
- ขั้นตอนทริกเกอร์สำหรับเหตุการณ์หมวดหมู่ DML
- ขั้นตอนทริกเกอร์แบบรวม
- การจัดการธุรกรรมในเนื้อความของขั้นตอนการทริกเกอร์
- ลำดับของขั้นตอนการทริกเกอร์เมื่อมีหลายขั้นตอน
- ขั้นตอนทริกเกอร์แทนสำหรับตารางอนุมาน
- ขั้นตอนทริกเกอร์สำหรับเหตุการณ์ DDL
- ขั้นตอนทริกเกอร์สำหรับเหตุการณ์ระดับสคีมาและฐานข้อมูล
13. แพ็คเกจใน PL/SQL
- โครงสร้างบรรจุภัณฑ์ทั่วไป
- การเข้าถึงองค์ประกอบแพ็คเกจ
- ข้อมูลแพ็คเกจ (ทั่วโลก)
- การโทรร่วมกันและการเรียกชื่อซ้ำ
- การเริ่มต้นแพ็คเกจ
- แพรกม่า SERIALLY_REUSABLE
14. การเรียกใช้ฟังก์ชัน PL/SQL ในคำสั่ง SQL
- ข้อกำหนดและข้อจำกัดในการใช้ฟังก์ชันผู้ใช้ใน SQL
- การเรียกใช้ฟังก์ชันจากแพ็คเกจใน SQL
- การแก้ไขความขัดแย้งของชื่อคอลัมน์และฟังก์ชัน
- ฟังก์ชันตารางใน SQL
15. ประเภทข้อมูลที่ซับซ้อนมากขึ้น: คอลเลกชัน
- พิมพ์ไวยากรณ์การประกาศสำหรับคอลเลกชัน
- การทำงานกับอาเรย์แบบเชื่อมโยง
- การสร้างตารางซ้อนและอาร์เรย์ VARRAY ในโปรแกรม
- การเพิ่มและการลบรายการในคอลเลกชัน
- การกระทำหลายอย่างกับคอลเลกชัน
- การแปลงคอลเลกชัน
- วิธีการทำงานกับคอลเลกชันในโปรแกรม
- ตัวอย่างการใช้คอลเลกชันในโปรแกรม
- สิทธิพิเศษ
- การดำเนินการแบบอนุกรมและการเชื่อมโยงแบบสอบถามกับอาร์เรย์
- การดำเนินการแบบอนุกรมของการดำเนินการที่คล้ายกัน: การก่อสร้าง FORALL
- การเชื่อมโยงกับอาร์เรย์: BULK COLLECT INTO build
- ตัวอย่างวงจร SCOTT
- การใช้คอลเลกชันในฟังก์ชันตาราง (การใช้งานสตรีมมิ่ง)
- ตัวอย่างง่ายๆ
- ใช้สำหรับการแปลงข้อมูล
16. ขั้นตอนการดีบักใน PL/SQL
- ตารางพจนานุกรม
- การพึ่งพาเป็นประจำ
- แพ็คเกจระบบ
- แพ็คเกจ DBMS_PROFILER
- แพ็คเกจ DBMS_TRACE
- ฟังก์ชันแพ็คเกจ DBMS_UTILITY
- แพ็คเกจ DBMS_DEBUG
- ตัวอย่างการสร้างโปรไฟล์การทำงานของโปรแกรม
17. ระบบการเขียนโปรแกรมสำหรับ PL/SQL
18. แพ็คเกจระบบ PL/SQL
- แพ็คเกจ STANDARD และ DBMS_STANDARD
- แพ็คเกจระบบอื่นๆ
- การเขียนข้อมูลจากโปรแกรมลงไฟล์และย้อนกลับ
- การเข้ารหัสข้อมูล
- รันงานอัตโนมัติใน Oracle
- การจัดการตำแหน่งไดนามิกของอ็อบเจ็กต์ในบัฟเฟอร์ไลบรารี
- การจัดการวัตถุ NULL ที่ไม่มีโครงสร้างขนาดใหญ่
- การเข้าถึงค่าข้อมูลเก่า
- การส่งข้อความจากโปรแกรม PL/SQL
- โอกาสในการทำงานใน PL/SQL ด้วย COM Automation
- ข้อมูลเพิ่มเติม
- ตัวอย่างง่ายๆ ของการแยกการเปิดเคอร์เซอร์และการประมวลผล
- มากกว่า ตัวอย่างที่ซับซ้อนการแบ่งงาน
20. คุณลักษณะของขั้นตอนทริกเกอร์ในระดับของสคีมาฐานข้อมูลและเหตุการณ์ใน DBMS
ข้อมูลเบื้องต้นเกี่ยวกับการเขียนโปรแกรม ORACLE ใน Java
1. แนวคิดพื้นฐาน
- สถานที่ของ Java ในสถาปัตยกรรม Oracle
- ความสัมพันธ์และความสัมพันธ์ระหว่าง PL/SQL และ Java ใน Oracle
2. คุณสมบัติจาวาและสภาพแวดล้อมสำหรับการรันโปรแกรม Java
- สถาปัตยกรรมจาวา
- ส่วนประกอบซอฟต์แวร์ในสภาพแวดล้อมการพัฒนา Java
- การติดตั้งสภาพแวดล้อมการพัฒนา Java
- สภาพแวดล้อมระบบปฏิบัติการ
3. การสร้าง โปรแกรมอิสระในชวา
- ตัวอย่างการออกอากาศและดำเนินรายการ
4. การสร้างโปรแกรม Java Stored ใน Oracle
- ส่วนประกอบ Oracle DBMS เพิ่มเติมสำหรับการทำงานกับโปรแกรมที่เก็บไว้ใน Java
- ข้อจำกัดของโปรแกรมที่เก็บไว้ใน Java
- การติดตั้ง การถอนการติดตั้ง และการอัพเดต JServer/OJVM
- ตัวอย่างการสร้างโปรแกรม Java ที่เก็บไว้
- การสร้างด้วย loadjava
- การสร้างด้วยคำสั่ง SQL
- การเรียกคลาสที่โหลดแล้ว
- การทำงานกับพจนานุกรมอ้างอิง
- การจัดระเบียบข้อมูลอ้างอิง
- การดูองค์ประกอบ Java
- ดูแหล่งที่มา
- การแปลงชื่อ
- คุณสมบัติของ JVM แบบฝัง
- ล่าม ojvmjava
5. องค์ประกอบของการเขียนโปรแกรมจาวา
- พื้นฐานภาษา
- โครงสร้างภาษาพื้นฐาน
- ตัวแปร
- ผู้ประกอบการ
- นิพจน์ ส่วนคำสั่ง และบล็อก
- การโอนการควบคุม
- วัตถุและโครงสร้างอย่างง่าย
- ชั้นเรียนและมรดก
- การสร้างชั้นเรียน
- กลศาสตร์ของการใช้คลาสในโปรแกรม
- มรดก
- อินเทอร์เฟซ
- การจัดการข้อยกเว้น
- เทคนิคการเขียนโปรแกรม Java บางอย่าง
- ส่วนต่อประสานกราฟิก
- กลุ่มของวัตถุ (คอลเลกชัน)
- สตรีมมิ่งอินพุตและเอาต์พุต
- การกำหนดพารามิเตอร์ของการทำงานของโปรแกรมโดยใช้ชุดคุณสมบัติ
- การทำให้เป็นอนุกรมของวัตถุ
6. การโต้ตอบกับฐานข้อมูลผ่าน JDBC
- การใช้ JDBC
- ไดรเวอร์ JDBC และ JDBC
- ไดรเวอร์ JDBC ใน Oracle
- การติดตั้งไดรเวอร์ JDBC เพื่อทำงานกับ Oracle
- โปรแกรม Java เพื่อทดสอบการเชื่อมต่อผ่าน JDBC
- ทำงานร่วมกับ Oracle Data จาก โปรแกรมภายนอกในชวา
- การเข้าถึงฐานข้อมูลผ่านไดรเวอร์ OCI แบบหนา
- การทำงานกับข้อมูล Oracle จากโปรแกรม Java ที่เก็บไว้
- การเข้าถึงฐานข้อมูลผ่านไดร์เวอร์แบบหนา (“native”, kprb)
- การเข้าถึงฐานข้อมูลผ่านไดร์เวอร์แบบบาง
- การเข้าถึงข้อมูลจากขั้นตอนทริกเกอร์ของ Oracle
7. คุณสมบัติเพิ่มเติมของโปรโตคอล JDBC
- การเชื่อมต่อกับ DBMS โดยใช้เทคนิค DataSource
- ตัวอย่างง่ายๆ ของการเชื่อมต่อโดยใช้เทคนิค DataSource
- ตัวอย่างการเชื่อมต่อโดยใช้บริการ JNDI
- ตัวอย่างการแคชการเชื่อมต่อ
- ตัวอย่างของการจัดระเบียบการเชื่อมต่อเชิงตรรกะ
- การเปลี่ยนแปลงข้อมูลในฐานข้อมูลและการเข้าถึงรูทีนที่เก็บไว้
- การเปลี่ยนแปลงข้อมูล
- การจัดการธุรกรรม
- การเข้าถึงโปรแกรมที่เก็บไว้
- การกำหนดพารามิเตอร์แบบสอบถาม
- การใช้ประเภทข้อมูลของออราเคิล
- การปรับปรุงประสิทธิภาพของการเรียกฐานข้อมูล
- คำขอที่เกิดซ้ำ
- การดำเนินการเป็นกลุ่ม
- ลิงก์จากโปรแกรมไปยังเคอร์เซอร์ใน DBMS
8. การโต้ตอบกับฐานข้อมูลผ่าน SQLJ
- ตัวอย่างโปรแกรมอย่างง่าย
- การแปลและรันโปรแกรมด้วย SQLJ
- ตัวอย่างที่ซับซ้อนมากขึ้น: การสุ่มตัวอย่างหลายรายการจากฐานข้อมูล
- การใช้ SQLJ ใน Java Stored Procedures
- ตัวอย่างการโหลดจากภายนอก
- ตัวอย่างการออกอากาศภายใน
9. พื้นฐานของการสร้างแอปพลิเคชันสำหรับเว็บ ใช้จาวาและออราเคิล
- ส่วนลูกค้า: การทำงานกับแอปเพล็ต
- ตัวอย่างของการออกอากาศและดำเนินการแอปเพล็ต
- อาปาเช่เว็บเซิร์ฟเวอร์
- การสื่อสารกับเว็บเซิร์ฟเวอร์ผ่านโปรโตคอล HTTP
- แนวคิดทั่วไปของการส่งข้อความ HTTP
- การจัดบทสนทนาในรูปแบบ HTML
- การทำงานกับ Java Servlets
- ทำความเข้าใจกับ Java Servlets และ Servlet Containers
- อุปกรณ์ Java Servlet
- ตัวอย่างการเขียนเซิร์ฟเล็ตใน Java
- ตัวอย่างการเรียกเซิร์ฟเล็ต
- ตัวอย่างเซิร์ฟเล็ตที่เข้าถึงฐานข้อมูล
- การใช้คลาส HttpServlet
- การทำงานกับเพจ JavaServer
- ตัวอย่างการเขียนเพจ JSP
- ตัวอย่างการเข้าถึงเพจ JSP
- อ็อพชันบางอย่างสำหรับการสร้างเพจ JSP
- วิธีเข้าถึงฐานข้อมูลจากเพจ JSP
- รูปแบบ MVC ของการจัดระเบียบแอปพลิเคชันสำหรับเว็บ
10. การโต้ตอบของส่วนประกอบแอปพลิเคชันสำหรับเว็บ
- การถ่ายโอนการควบคุมไปยังส่วนประกอบ แอปพลิเคชันเว็บซึ่งกันและกัน
- ติดต่อเรา หน้า HTMLไปยังเพจ JavaServer และเซิร์ฟเล็ต
- การถ่ายโอนการควบคุมจากเพจ JavaServer
- การถ่ายโอนการควบคุมไปยังส่วนประกอบของเว็บจากเซิร์ฟเล็ต
- Java abstractions สำหรับการสร้างเว็บแอปพลิเคชัน
- คำขอและการตอบสนอง
- ขอบเขต
- บริบทเซิร์ฟเล็ต
- ออบเจ็กต์หน้า JavaServer ที่กำหนดไว้ล่วงหน้า
- การส่งข้อมูลส่วนประกอบของแอปพลิเคชันเว็บให้กันและกัน
- การส่งผ่านข้อมูลผ่านพารามิเตอร์คำขอ
- การส่งผ่านข้อมูลผ่านบริบทและส่วนประกอบ JavaBeans
11. ตัวอย่างการสร้างแอปพลิเคชันสำหรับ เว็บหมายถึงชวาและออราเคิล
- หน้า Logon.html
- เข้าสู่ระบบเซิร์ฟเล็ต
- หน้า LogonError.html
- หน้า Main.jsp
- หน้า CompanyData.jsp และคลาส orajava.demos.StuffData
- เซิร์ฟเล็ตออกจากระบบ
- การออกอากาศคลาส การโฮสต์ไฟล์ และการทดสอบแอปพลิเคชัน
- ข้อมูลเพิ่มเติม
12. ตัวอย่างการเขียนโปรแกรมมาร์กอัป JSP แบบกำหนดเอง
- ตัวอย่างการใช้มาร์กอัปสำเร็จรูป
- ตัวอย่างการเขียนโปรแกรมมาร์กอัปของคุณเอง
เมื่อสิ้นสุดหลักสูตร การรับรองขั้นสุดท้ายจะดำเนินการในรูปแบบของการทดสอบหรือตามเกรดสำหรับ งานภาคปฏิบัติเสร็จสิ้นในระหว่างกระบวนการเรียนรู้
ใน โลกสมัยใหม่เป็นเรื่องยากที่จะทำได้โดยปราศจากเทคโนโลยีสารสนเทศและอนุพันธ์ - คอมพิวเตอร์ โทรศัพท์มือถือ อินเทอร์เน็ต ฯลฯ โดยเฉพาะอย่างยิ่งในบริษัทขนาดใหญ่และองค์กรภาครัฐที่ทำงานร่วมกับผู้คนจำนวนมาก ไม่ใช่แค่กับลูกค้า VIP สองสามรายเท่านั้น อาจจะเป็นบริษัทเล็กๆก็ได้ และเมื่อมีคู่สัญญา ผู้สมัคร ฯลฯ จำนวนมาก - คุณไม่สามารถทำได้หากไม่มีฐานข้อมูลที่จำเป็นสำหรับการประมวลผลข้อมูล โดยปกติแล้ว สมัยของบัญชีแยกประเภทและการ์ดที่หลายคนในห้องสมุดจำได้นั้นได้หายไปนานแล้ว คอมพิวเตอร์ส่วนบุคคลและ ฐานข้อมูลอิเล็กทรอนิกส์ข้อมูล.
ปัจจุบันนี้เป็นไปไม่ได้เลยที่จะจินตนาการถึงการทำงานของบริษัทที่ใหญ่ที่สุด ธนาคาร หรือองค์กรภาครัฐโดยไม่ต้องใช้ฐานข้อมูลและเครื่องมือ ระบบธุรกิจอัจฉริยะ- ฐานข้อมูลช่วยให้เราจัดเก็บและเข้าถึงได้ ปริมาณมากข้อมูลและ ระบบการจัดการฐานข้อมูล(DBMS) - จัดการที่เก็บข้อมูลที่มีอยู่
ใน ศูนย์ฝึกอบรม"อินเทอร์เฟซ"คุณจะได้เรียนรู้วิธีการใช้ระบบการจัดการฐานข้อมูลอย่างมีประสิทธิภาพ: ค้นหาข้อมูลที่คุณต้องการอย่างรวดเร็ว นำทางไปยังสคีมาฐานข้อมูล สร้างแบบสอบถาม พัฒนาและสร้างฐานข้อมูล
การฝึกอบรมจะช่วยให้คุณไม่เพียงได้รับความรู้และทักษะเท่านั้น แต่ยังยืนยันได้โดยผ่านการสอบที่เหมาะสมสำหรับสถานะของผู้เชี่ยวชาญที่ผ่านการรับรอง โดยผู้เชี่ยวชาญที่มีประสบการณ์ใน ดีบีเอ็มเอส ไมโครซอฟต์ เอสคิวแอลเซิร์ฟเวอร์หรือ ออราเคิลอาจสนใจเรียนรู้ระบบธุรกิจอัจฉริยะ งานเหล่านี้ค่อนข้างซับซ้อนโดยใช้เครื่องมือทางคณิตศาสตร์ที่ยุ่งยาก แต่ไม่เพียงแต่ช่วยให้วิเคราะห์กระบวนการที่กำลังดำเนินอยู่เท่านั้น แต่ยังช่วยคาดการณ์อนาคตซึ่งเป็นที่ต้องการอีกด้วย บริษัทขนาดใหญ่- นี่คือสาเหตุที่ผู้เชี่ยวชาญด้านการวิเคราะห์ธุรกิจเป็นที่ต้องการของตลาด และระดับค่าตอบแทนสำหรับงานของพวกเขานั้นดีมาก แม้ว่าผู้เชี่ยวชาญด้านฐานข้อมูล ผู้ดูแลระบบ และนักพัฒนาที่มีคุณสมบัติเหมาะสมจะไม่สามารถบ่นได้ ระดับต่ำไม่มีรายได้เช่นกัน มาที่หลักสูตรของเราและรับอาชีพที่เป็นที่ต้องการและได้รับค่าตอบแทนสูง เรากำลังรอคุณอยู่!
ในตอนท้ายของหลักสูตรการรับรองขั้นสุดท้ายจะดำเนินการในรูปแบบของการทดสอบหรือโดยการให้คะแนนโดยครูตลอดหลักสูตรการศึกษาตามคะแนนที่นักเรียนได้รับเมื่อตรวจสอบความเชี่ยวชาญของเนื้อหาที่กำลังศึกษาตาม เกี่ยวกับเกรดสำหรับงานภาคปฏิบัติที่ดำเนินการในระหว่างกระบวนการฝึกอบรม
ศูนย์ฝึกอบรม "อินเทอร์เฟซ"ให้บริการให้คำปรึกษาในการสร้างแบบจำลองกระบวนการทางธุรกิจ การออกแบบ ระบบสารสนเทศ, การพัฒนาโครงสร้างฐานข้อมูล เป็นต้น
- ต้องการความช่วยเหลือในการหาหลักสูตรหรือไม่?
เป้าหมายของเราคือการให้การฝึกอบรมแก่มืออาชีพในเวลาและทุกที่ที่พวกเขาต้องการ สามารถปรับโปรแกรมหลักสูตรได้ตามความต้องการของลูกค้า! เราจะบอกคุณเกี่ยวกับสิ่งที่คุณสนใจ ไม่ใช่แค่เกี่ยวกับสิ่งที่ได้รับการแก้ไขอย่างเคร่งครัดในโปรแกรมหลักสูตรเท่านั้น หากคุณต้องการหลักสูตรที่คุณไม่เห็นตามตารางเวลาหรือบนเว็บไซต์ของเรา หรือหากคุณต้องการเรียนหลักสูตรในเวลาหรือสถานที่อื่น โปรดแจ้งให้เราทราบที่
ในหนังสือของเขา “Oracle for Professionals. สถาปัตยกรรมและคุณสมบัติหลัก” ยืนยันว่านี่เป็นเพียงความจำเป็น แม้ว่าทีมของคุณจะมีผู้ดูแลระบบที่มีความสามารถ แต่การรู้ว่า Oracle DBMS ทำงานอย่างไรจะช่วยให้คุณเข้าใจซึ่งกันและกันได้ดีขึ้นและโต้ตอบได้อย่างมีประสิทธิภาพมากขึ้น ไม่ต้องพูดถึงกรณีที่คุณไม่มีผู้เชี่ยวชาญดังกล่าว ในหัวข้อนี้ฉันจะพูดถึงสิ่งสำคัญซึ่งความเข้าใจในเรื่องนี้จะช่วยให้คุณทำงานกับฐานข้อมูล Oracle ได้อย่างมีประสิทธิภาพและใช้คุณสมบัติบางอย่างที่เป็นประโยชน์อย่างยิ่งสำหรับแอปพลิเคชันของคุณ หากคุณได้อ่านหนังสือของ Tom Kite ที่กล่าวถึงข้างต้นแล้ว คุณสามารถใช้บทความนี้เป็นเครื่องเตือนใจได้ หมายเหตุประการหนึ่ง - ฉันอ่านหนังสือมานานแล้ว เวอร์ชันล่าสุดฐานข้อมูล Oracle คือ 9i ฉันยังเรียนหลักสูตรการบริหารใน 9i ด้วย ดังนั้นหากใน 10 ขึ้นไปมีบางอย่างเปลี่ยนแปลงและเพิ่มเข้ามา ก็อย่าตำหนิฉัน แม้ว่าฉันจะเขียนเกี่ยวกับสิ่งพื้นฐานที่ค่อนข้างไม่น่าจะเปลี่ยนแปลงมากนัก
อะไรทำให้ฐานข้อมูล Oracle รวดเร็วมาก
เมื่อคุณเปลี่ยนข้อมูลในฐานข้อมูล การเปลี่ยนแปลงของคุณจะไปอยู่ที่แคชก่อน จากนั้นจึงเขียนลงในดิสก์แบบอะซิงโครนัสในหลายเธรด (สามารถกำหนดค่าหมายเลขได้) บันทึกพิเศษ (ไฟล์บันทึกออนไลน์) ถูกเขียนพร้อมกันเพื่อให้สามารถกู้คืนข้อมูลหลังจากเกิดความล้มเหลวหากยังไม่ได้ล้างจากแคชไปยังดิสก์ แนวทางนี้ช่วยให้คุณได้รับความเร็วเนื่องจากในกรณีนี้ทุกอย่างถูกเขียนลงในดิสก์ตามลำดับในไฟล์เดียวและสามารถกำหนดค่าเพื่อให้สามารถเขียนแบบขนานกับดิสก์สองตัวขึ้นไปซึ่งจะเป็นการเพิ่มความน่าเชื่อถือของการป้องกันการสูญเสียการเปลี่ยนแปลง . ควรมีไฟล์อธิบายหลายไฟล์ และจะใช้เป็นวงกลม: ทันทีที่ข้อมูลทั้งหมดที่ได้รับการคุ้มครองโดยไฟล์บันทึกไฟล์ใดไฟล์หนึ่งถูกเขียนโดยกระบวนการเบื้องหลังลงในบล็อกข้อมูลบนดิสก์ ไฟล์บันทึกนี้จะสามารถนำมาใช้ซ้ำได้ ดังนั้นในระดับหนึ่ง สิ่งนี้ยังช่วยให้คุณประหยัดเงินได้ด้วยการมีดิสก์ที่เร็วเป็นพิเศษ ขนาดเล็กเฉพาะไฟล์บันทึกขนาดเล็กที่ใช้ในวงกลมเท่านั้นฉันมักจะพูดถึงเรื่องนี้เมื่อพวกเขาแนะนำให้ฉันบันทึกบางสิ่งลงในไฟล์บนดิสก์เนื่องจากมันจะ "เร็วกว่า" เนื่องจากเราจะเขียนข้อมูลทั้งหมดตามลำดับและหัวฮาร์ดดิสก์จะไม่ต้องวิ่งไปมา กำลังมองหาบล็อกสุ่ม ฉันยังคงยืนยันว่าเราจะไม่ได้รับอะไรเลยเนื่องจากเราจะเขียนลงดิสก์ที่ช้าซึ่งกระบวนการอื่น ๆ มากมายจะถูกใช้งานในไม่ช้าเพื่อเขียนบันทึกที่แตกต่างกันจำนวนมากและ Oracle ก็เขียนพร้อมกันไปยังดิสก์ของมันเท่านั้น ตามลำดับตามที่ฉันได้อธิบายไว้ข้างต้น
กลไกการกู้คืนข้อมูล
ใน Oracle DBMS คุณสามารถเปิดใช้งานการเก็บถาวรไฟล์บันทึกการดำเนินงานที่อธิบายไว้ข้างต้น และการเปลี่ยนแปลงทั้งหมดจะถูกเก็บถาวร ดังนั้น หากเราสูญเสียดิสก์ที่มีบล็อกข้อมูล เราก็สามารถกู้คืนดิสก์เหล่านั้นไปยังช่วงเวลาใดก็ได้ รวมถึงช่วงเวลาก่อนที่จะเกิดข้อผิดพลาด โดยการส่งต่อบันทึกออนไลน์ปัจจุบันไปยังไฟล์บันทึกที่เก็บไว้ล่าสุดยืนตามสำเนา
ข้างต้น ไฟล์เก็บถาวรสามารถส่งผ่านเครือข่ายและนำไปใช้กับสำเนาของฐานข้อมูลได้ทันที ด้วยวิธีนี้ คุณจะมีสำเนาด่วนพร้อมอยู่เสมอโดยมีความล่าช้าของข้อมูลน้อยที่สุด ในบางแอปพลิเคชัน ซึ่งไม่จำเป็นต้องแสดงข้อมูลจนถึงวินาทีสุดท้าย คุณสามารถกำหนดค่าฐานข้อมูลดังกล่าวให้เป็นแบบอ่านอย่างเดียวและยกเลิกการโหลดอินสแตนซ์ฐานข้อมูลหลักได้ และอาจมีอินสแตนซ์ดังกล่าวหลายอินสแตนซ์สำหรับการอ่านติดอยู่ในคำขอเขียนบางอย่าง
หากคำขอบางรายการของคุณค้างอยู่ ช่วงเวลาที่พลควรดูที่ alert.log เพื่อดูว่ามีจุดตรวจที่ไม่สมบูรณ์หรือไม่ สิ่งนี้ชี้ให้เห็นว่าไฟล์บันทึกออนไลน์ของคุณมีขนาดใหญ่เกินไปหรือมีน้อยเกินไป ดังนั้นข้อมูลที่ป้องกันจึงไม่มีเวลาที่จะล้างจากแคชไปยังดิสก์ และ DBMS ได้กรอกไฟล์บันทึกออนไลน์ที่มีอยู่ทั้งหมดแล้วและต้องการ นำมาใช้ซ้ำเป็นวงกลม จะทำอย่างไรดี ดังนั้นจึงมีการหยุดชั่วคราว แม้ว่าแอปพลิเคชันของคุณทำงานบน Java ก่อนอื่นฉันจะดูการมีอยู่ของ Full GC ในบันทึกส่วนการอ่านและการย้อนกลับแบบไม่ปิดกั้น
หนึ่งในคุณสมบัติที่โดดเด่นที่สุดของ Oracle DBMS คือการอ่านแบบไม่ปิดกั้น ซึ่งทำได้ผ่านเซ็กเมนต์การย้อนกลับ อ่านแบบสอบถามไปยัง Oracle ไม่เคยไม่ถูกบล็อกเนื่องจากข้อมูลสามารถอ่านได้จากส่วนการย้อนกลับเกือบตลอดเวลาส่วนการย้อนกลับให้โบนัสอีกอย่าง: จากนั้นคุณสามารถลองอ่านข้อมูลที่ล้าสมัยเล็กน้อยสำหรับตารางที่อยู่ในนั้นในช่วงเวลาหนึ่งได้ คุณลักษณะนี้เรียกว่าย้อนหลัง
อย่างไรก็ตาม บางครั้งเซ็กเมนต์การย้อนกลับอาจเป็นปัญหา: หากคุณมีงานจำนวนมากสำหรับการลบข้อมูลจำนวนมาก (การลบจะสร้างข้อมูลมากขึ้นเรื่อยๆ ในเซ็กเมนต์การย้อนกลับ) คุณจะได้รับ ORA-01555: สแนปช็อตเก่าเกินไป- สิ่งสำคัญที่ต้องจำไว้ในกรณีนี้คือ คุณไม่จำเป็นต้องเขียนงานของคุณใหม่เพื่อให้คอมมิตทุกการดำเนินการ N แต่คุณจำเป็นต้องใช้เซ็กเมนต์การย้อนกลับที่สร้างขึ้นเป็นพิเศษแยกต่างหากสำหรับการดำเนินการดังกล่าว
ระดับการแยกธุรกรรม
ไม่มีระดับการแยก READ_UNCOMMITED ใน Oracle เลย ประเด็นก็คือฐานข้อมูลอื่นใช้เพื่อให้เกิดการทำงานพร้อมกันสูงสุดโดยการลบการล็อกการอ่าน แต่ใน Oracle การอ่านจะดำเนินการโดยไม่มีการล็อกเสมอ ดังนั้นเราจึงได้รับประโยชน์ทั้งหมดที่ระดับนี้สามารถให้ได้อยู่แล้วโดยไม่ต้องมีข้อจำกัดเพิ่มเติมใดๆโดยทั่วไป เห็นได้ชัดว่ามีเพียงสองระดับการแยกใน Oracle: ค่าเริ่มต้นคือ READ_COMMITTED แต่คุณสามารถตั้งค่าเป็น SERIALIZABLE ได้หากต้องการ
อย่างไรก็ตาม ในระดับคำสั่ง (SELECT, UPDATE ฯลฯ) คุณมี REPEATABLE_READ เป็นค่าเริ่มต้นอยู่แล้ว เช่น ภายในคำสั่งเดียว คุณจะได้รับการอ่านที่สอดคล้องกันเสมอ ซึ่งแน่นอนว่าทำได้โดยส่วนการย้อนกลับ ฉันชอบตัวอย่างที่ Tom Kite ให้มาโดยตลอดเพื่ออธิบายว่าสิ่งนี้ทำอะไร สมมติว่าคุณมีตารางขนาดใหญ่มากพร้อมบัญชี และคุณดำเนินการ SELECT เพื่อรับจำนวนเงิน ใน Oracle ไม่เหมือนกับฐานข้อมูลอื่น ๆ แม้ว่าในระหว่างการสืบค้นของคุณ มีธุรกรรมอื่นโอนจำนวนหนึ่งจากบัญชีแรกไปยังบัญชีสุดท้าย คุณจะยังคงได้รับข้อมูลที่เป็นปัจจุบันที่จุดเริ่มต้นของการสืบค้น เนื่องจากเมื่อคุณไปถึง บรรทัดสุดท้ายที่ SELECT ของคุณจะเห็นว่าบรรทัดมีการเปลี่ยนแปลง จะไปที่ส่วนการย้อนกลับและอ่านข้อมูลที่อยู่ในเซลล์นี้ในขณะที่คำขอเริ่มต้น ในฐานข้อมูลอื่นๆ จำนวนมาก คุณจะได้รับคำตอบเป็นผลรวมที่ไม่เคยมีอยู่ในตารางของคุณ อย่างไรก็ตามในออราเคิล ในกรณีนี้มีอันตรายจากการได้รับ ORA-01555: สแนปช็อตเก่าเกินไป.
นอกจาก ระดับมาตรฐานการแยกใน Oracle ยังมีธุรกรรมที่เรียกว่า READ_ONLY ซึ่งให้ REPEATABLE_READ ภายในธุรกรรมทั้งหมด ไม่ใช่แค่ภายในคำสั่งเดียว แต่ตามชื่อเลย คุณสามารถอ่านได้เฉพาะในธุรกรรมดังกล่าวเท่านั้น
ให้ Oracle แคชข้อมูลของคุณอย่างมีประสิทธิภาพ
ใน Oracle ข้อมูลทั้งหมดจะถูกอ่านและเขียนไม่ได้ลงดิสก์โดยตรง แต่ผ่านแคช ตามค่าเริ่มต้น แคชจะขึ้นอยู่กับอัลกอริธึม LRU ดังนั้นหากคุณอ่านตารางที่มีขนาดใหญ่มากด้วยตัวระบุในปริมาณมาก โดยขอขึ้นบรรทัดใหม่ทุกครั้ง คำขอดังกล่าวสามารถแทนที่ตารางคงที่ขนาดเล็กจากแคช ซึ่งจะเป็น สิ่งที่ดีที่สุดที่จะมีอยู่ในแคชอย่างถาวร เพื่อวัตถุประสงค์ดังกล่าว เมื่อสร้างตาราง คุณสามารถระบุแคชชนิดพิเศษที่จะทำการสืบค้นไปยังตารางของคุณ ดังนั้นสำหรับตารางแรกในตัวอย่างข้างต้น แคชจะทำ RECYCLE ซึ่งโดยพื้นฐานแล้วจะไม่เก็บข้อมูลใด ๆ แต่จะโยนออกจากแคชทันที และสำหรับตารางที่สองแคช KEEP นั้นเหมาะสมซึ่งช่วยให้คุณจัดเก็บตารางสแตติกขนาดเล็กในแคชและการสืบค้นไปยังตารางอื่น ๆ ทั้งหมดจะไม่แทนที่ข้อมูลจากตารางสแตติกจากแคชเส้นว่าง
ออราเคิลมีอย่างหนึ่งอย่างมาก คุณสมบัติที่น่าสนใจซึ่งบัดนี้พวกเขาจะไม่มีวันกำจัดออกไปได้เลย ความจริงก็คือถ้าคุณใส่สตริงว่างในฐานข้อมูล มันจะถูกบันทึกเป็น NULL ด้วยวิธีนี้ ในการอ่านครั้งต่อๆ ไป คุณจะไม่มีวันได้รับสตริงว่าง แต่จะมีเพียง NULL เท่านั้น โปรดจำไว้ด้วยว่าด้วยเหตุผลเดียวกัน เส้นว่างอย่าเข้าไปในดัชนี ดังนั้นหากคุณสร้างแบบสอบถามที่แผนการดำเนินการใช้ดัชนี คุณจะไม่มีวันได้รับแถวว่าง (หรือค่อนข้างเป็น NULL) แต่จะเพิ่มเติมในภายหลังเล็กน้อยดัชนี
นอกเหนือจากดัชนีที่รู้จักกันดีในรูปแบบของ B-tree แล้ว Oracle ยังมีสิ่งที่เรียกว่าดัชนีบิต ซึ่งแสดงประสิทธิภาพที่สูงมากในการสืบค้นไปยังตารางที่มีคอลัมน์ที่มีค่าเบาบางมาก ในกรณีนี้ การสืบค้น (เมื่อเทียบกับดัชนีปกติ) ที่ประกอบด้วยคอลัมน์ OR และ AND ที่ซับซ้อนรวมกันจะทำงานได้อย่างมีประสิทธิภาพเป็นพิเศษ ดัชนีนี้ไม่ได้จัดเก็บไว้ใน B-tree แต่อยู่ในบิตแมป ซึ่งทำให้สามารถดำเนินการคำสั่งที่อธิบายไว้ได้อย่างรวดเร็ว คำถามเกี่ยวกับจำนวนค่าที่ไม่ซ้ำในตารางซึ่งดัชนีที่กำหนดจะดีกว่านั้นซับซ้อนมาก: อาจเป็นได้ทั้ง 10 ค่าที่ไม่ซ้ำหรือ 10,000 ที่นี่คุณต้องสร้างดัชนีบนตารางเฉพาะและ ดูว่าเกิดอะไรขึ้น สิ่งสำคัญคืออย่าพยายามใช้ดัชนีนี้กับตารางที่มีการแทรกจำนวนมากและอัปเดตคอลัมน์ที่จัดทำดัชนี เนื่องจากการดำเนินการดังกล่าวจะบล็อกพื้นที่ที่ค่อนข้างใหญ่ในตารางที่จัดทำดัชนี และระบบของคุณอาจติดขัดหรือแม้กระทั่งเกิดการหยุดชะงักสิ่งหนึ่งที่ฉันพอใจมากเกี่ยวกับ Oracle มาโดยตลอดคือความสามารถในการสร้างดัชนีบนฟังก์ชัน เหล่านั้น. หากคุณต้องใช้ฟังก์ชันบางอย่างในการสืบค้น คุณสามารถสร้างดัชนีและเพิ่มความเร็วในการอ่านได้อย่างมาก
คุณสมบัติที่น่าสนใจอีกประการหนึ่งของดัชนีที่ต้องระวังก็คือดัชนีจะไม่เก็บค่า NULL ดังนั้น หากคุณทำการสอบถามโดยมีเงื่อนไข<, >หรือ<>บนคอลัมน์ที่จัดทำดัชนี คุณจะไม่ได้รับแถวหลังที่มีค่า NULL ในคอลัมน์ที่จัดทำดัชนี อีกด้านหนึ่ง คุณสมบัตินี้สามารถใช้งานได้อย่างมีประสิทธิภาพในบางกรณีโดยเฉพาะ ตัวอย่างเช่น คุณมีตารางที่มีขนาดใหญ่มากซึ่งใช้จัดเก็บคำสั่งซื้อซึ่งไม่เคยถูกล้างเลย และมีกระบวนการเบื้องหลังที่จำเป็นในการส่งคำสั่งซื้อทั้งหมดไปยังระบบแบ็คออฟฟิศบางระบบ วิธีแก้ปัญหาแรกที่แนะนำตัวเองคือสร้างอีกคอลัมน์หนึ่งด้วยแฟล็ก is_sent โดยที่ตอนแรกเป็น 0 และเมื่อส่งเราจะใส่ 1 นั่นก็คือ แต่ละครั้งที่กระบวนการเบื้องหลังเริ่มต้นขึ้น กระบวนการจะส่งคำขอไปยังตารางโดยมีเงื่อนไข is_sent=0 คุณไม่สามารถใช้ดัชนีบิตที่นี่ได้ เนื่องจากตารางมีการเติมเต็มอย่างมาก ดัชนี B-tree ปกติจะใช้พื้นที่มากเนื่องจากจำเป็นต้องจัดเก็บการอ้างอิงถึงแถวจำนวนมาก แต่ถ้าเราเปลี่ยนตรรกะของเราเล็กน้อยทั้งในฐานะเครื่องหมายอ้างอิงและในคอลัมน์ is_sent เราใส่ NULL แทนที่จะเป็น 1 ดัชนีของเราจะมีขนาดเล็กเนื่องจากในช่วงเวลาใด ๆ จะมีการจัดเก็บเฉพาะค่าที่ไม่ใช่ NULL เท่านั้นและ จะมีน้อยมาก
ตารางจะแตกต่างกัน
นอกเหนือจากตารางปกติแล้ว Oracle ก็เหมือนกับฐานข้อมูลอื่นๆ ที่เรียกว่าตารางดัชนี เมื่อข้อมูลตารางอยู่ในแผนผังดัชนีคีย์หลักโดยตรง ด้วยวิธีนี้ บรรลุสองสิ่งได้ในคราวเดียว ประการแรก การอ่านข้อมูล คีย์หลักคุณมีการอ่านน้อยลงหนึ่งครั้ง ประการที่สอง ข้อมูลในตารางเรียงลำดับตามคีย์หลัก ดังนั้นการดำเนินการ ORDER BY PK จะดำเนินการโดยไม่มีการเรียงลำดับเพิ่มเติม ข้อเสียคือคุณจะไม่สามารถแยกความแตกต่างระหว่างการเข้าสู่ระบบไฟล์บันทึกการปฏิบัติงานของดัชนีที่ระบุได้อีกต่อไปตารางที่ยอดเยี่ยมอีกประเภทหนึ่งคือตารางแบบคลัสเตอร์ ซึ่งช่วยให้คุณสามารถจัดเก็บข้อมูลจากตารางตั้งแต่สองตารางขึ้นไปที่คลัสเตอร์ด้วยค่าคีย์เดียวในบล็อกข้อมูลเดียว วิธีนี้จะค่อนข้างมีประสิทธิภาพหากคุณแชร์ตารางบางตารางอยู่เสมอ
ขึ้นอยู่กับตารางที่คลัสเตอร์ นอกจากนี้ยังมีตารางแฮชแบบคลัสเตอร์ ซึ่งแทนที่จะเป็น B-tree จะใช้ตารางที่ยึดตามแฮชของคีย์คลัสเตอร์เพื่อการเข้าถึง แน่นอนว่ามันฟังดูน่าสนใจมาก แต่พูดตามตรง ฉันไม่เคยเจอมันในทางปฏิบัติเลย
การเชื่อมโยงตัวแปร
โปรแกรมเมอร์ทุกคนอาจเคยได้ยินเกี่ยวกับเรื่องนี้แล้ว แต่ฉันจะยังคงพูดถึงเทคนิคบังคับเช่นการเชื่อมโยงตัวแปร ความจริงก็คือสำหรับแต่ละคำขอที่ไม่ซ้ำกัน แผนการแยกวิเคราะห์จะถูกสร้างขึ้นและวางไว้ในแคช หากมีการสืบค้นที่แตกต่างกันจำนวนมาก เช่น การสืบค้นที่ใช้บ่อยตาม ID การสืบค้นแต่ละครั้งจะสร้างแผนของตัวเอง และจะรวมแผนอื่นๆ ทั้งหมดออกจากแคชด้วย ซึ่งสามารถเพิ่มการตอบสนองได้อย่างมาก เวลาของฐานข้อมูลของคุณนอกจากนี้ ยังเป็นที่น่าสังเกตว่าคุณไม่ควรใช้สิ่งนี้ในทางที่ผิด และใช้การเชื่อมโยงคอลัมน์ที่มีค่าที่แตกต่างกันจำนวนเล็กน้อย เช่น แฟล็ก is_deleted เนื่องจากในกรณีนี้ จะไม่มีข้อความค้นหาที่แตกต่างกันมากนัก และบางทีสำหรับข้อความค้นหาที่เฉพาะเจาะจงมากขึ้น DBMS จะสามารถสร้างแผนงานที่มีประสิทธิภาพมากขึ้นได้
หมายเหตุอีกสองสามประการสำหรับโปรแกรมเมอร์
หากคอลัมน์ของคุณเป็นประเภท VARCHAR2(100) การพยายามยัดสตริง longString.substring(0, 100) เข้าไปนั้นไม่รับประกันว่าจะสำเร็จ เนื่องจากขีดจำกัด 100 ในคำจำกัดความคอลัมน์เริ่มต้นอ้างอิงถึงจำนวนไบต์ ไม่ใช่อักขระ ดังนั้น หากคุณมีอักขระแบบไบต์คู่ คุณอาจประสบปัญหาได้ จริงๆ แล้ว ลักษณะการทำงานนี้สามารถกำหนดค่าได้เล็กน้อย คุณสามารถอ่านเพิ่มเติมได้ เป็นการดีถ้าคุณยังไม่ได้พยายามแทรกเข้าไป วนซ้ำไม่รู้จบตามหลักการทำยังทำไม่ได้เพราะในกรณีนี้มันไม่มีวันเกิดขึ้นดี คำแนะนำทั่วไปสำหรับฐานข้อมูลทุกประเภท: อย่าอัปเดตคอลัมน์ทั้งหมดในตารางเมื่อฟิลด์ใดฟิลด์หนึ่งของออบเจ็กต์มีการเปลี่ยนแปลง ดูเหมือนชัดเจนมาก แต่ในทางปฏิบัติการต่อต้านรูปแบบนี้มักเกิดขึ้น ดังนั้นฉันขอแนะนำอย่างยิ่งให้ตรวจสอบว่าเฟรมเวิร์กของคุณเฉพาะฟิลด์ UPDATE ที่เปลี่ยนแปลงจริง ๆ
บทสรุป
ฉันพยายามอธิบายสิ่งต่าง ๆ ส่วนใหญ่ที่ในความคิดของฉันมีประโยชน์สำหรับโปรแกรมเมอร์ เนื่องจากมีค่อนข้างมากฉันจึงสรุปเพียงโครงร่างเท่านั้นโดยมักไม่ได้ลงรายละเอียด ทำอย่างไรให้แม่น การตั้งค่าที่จำเป็นคุณสามารถอ่านได้ในหนังสือของ Tom Kite ที่กล่าวถึง ค้นหาในคอลัมน์ Asktom หรือเพียงแค่ Google สิ่งสำคัญคือการรู้ว่าอะไรกับ Google และฉันหวังว่าหัวข้อนี้จะแนะนำให้คุณแท็ก:
- ฐานข้อมูลออราเคิล
- ฐานข้อมูล