จัดการการแคชการสืบค้น

Oracle Analytics Cloud จะเก็บรักษาการแคชในระบบของชุดผลลัพธ์การสืบค้นในแคชการสืบค้น

หัวข้อต่างๆ มีดังนี้

เกี่ยวกับแคชการสืบค้น

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

ประโยชน์ของการแคช

วิธีที่เร็วที่สุดในการประมวลผลการสืบค้นคือการข้ามการประมวลผลเป็นกลุ่มและใช้คำตอบที่คำนวณไว้ล่วงหน้า

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

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

ประโยชน์อีกอย่างหนึ่งของการใช้แคชเพื่อตอบรับการสืบค้นคือการประหยัดเวลาการประมวลผลใน Oracle Analytics Cloud โดยเฉพาะอย่างยิ่ง หากมีการดึงข้อมูลผลลัพธ์การสืบค้นจากหลายฐานข้อมูล อาจพิจารณารวมและเรียงลำดับการประมวลผลในเซิร์ฟเวอร์ทั้งนี้ขึ้นอยู่กับการสืบค้น หากคำนวณการสืบค้นแล้ว ระบบจะหลีกเลี่ยงการประมวลผลนี้ ซึ่งจะทำให้มีทรัพยากรเซิร์ฟเวอร์ว่างสำหรับงานอื่น

สรุปแล้วการแคชการสืบค้นสามารถปรับปรุงประสิทธิภาพการสืบค้นได้มากและช่วยลดการรับส่งข้อมูลในเครือข่าย การประมวลผลฐานข้อมูล และค่าใช้จ่ายในการดำเนินการของการประมวลผล

ต้นทุนการแคช

การแคชการสืบค้นมีประโยชน์ต่างๆ ที่ชัดเจน แต่ก็มีต้นทุนเช่นกัน

  • มีความเป็นไปได้ที่ผลลัพธ์ที่แคชจะเป็นข้อมูลที่หมดอายุ

  • ต้นทุนด้านการดูแลระบบของการจัดการแคช

ด้วยการจัดการแคช โดยทั่วไปแล้วประโยชน์จะมีค่าเกินกว่าต้นทุน

งานการดูแลระบบที่เชื่อมโยงกับการแคช

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

เมื่อความถี่ของการอัปเดตแตกต่างกัน คุณต้องติดตามเวลาที่การเปลี่ยนแปลงเกิดขึ้นและล้างข้อมูลแคชด้วยตนเองเมื่อจำเป็น

ทำให้แคชเป็นข้อมูลล่าสุด

หากไม่ได้ล้างข้อมูลรายการแคชเมื่อข้อมูลในฐานข้อมูลที่ใช้งานเปลี่ยนแปลง การสืบค้นอาจแสดงผลลัพธ์ที่ไม่ใช่ข้อมูลล่าสุด

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

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

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

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

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

การใช้แคชร่วมกันระหว่างผู้ใช้

หากใช้งานล็อกออนร่วมกันสำหรับพูลการเชื่อมต่อเฉพาะ จะสามารถใช้แคชร่วมกันได้ระหว่างผู้ใช้และไม่จำเป็นต้องสร้างเป็นตัวเลือกสำหรับผู้ใช้แต่ละคน

หากไม่ได้ใช้งานล็อกออนร่วมกันและใช้ล็อกอินฐานข้อมูลเฉพาะผู้ใช้ ผู้ใช้แต่ละคนจะสร้างรายการแคชของตนเองขึ้นมา

ใช้งานหรือเลิกใช้การแคชการสืบค้น

ใน Oracle Analytics Cloud แคชการสืบค้นจะใช้งานตามค่าดีฟอลต์ คุณสามารถใช้งานหรือเลิกใช้การแคชการสืบค้นได้ในเพจ การตั้งค่าระบบขั้นสูง

  1. คลิก คอนโซล
  2. คลิก การตั้งค่าระบบขั้นสูง
  3. คลิก ประสิทธิภาพและการทำงานร่วมกันได้
  4. ตั้งค่าเปิดหรือปิด ใช้งานแคช
    • เปิด — การแคชการสืบค้นข้อมูลเปิดใช้งาน
    • ปิด — เลิกใช้การแคช
  5. คลิก ใช้
    โปรดรอสักครู่เพื่อให้การเปลี่ยนแปลงรีเฟรชทั้งระบบ

ตรวจสอบและจัดการแคช

ในการจัดการการเปลี่ยนแปลงในฐานข้อมูลที่ใช้งานและเพื่อตรวจสอบรายการแคช คุณต้องพัฒนากลยุทธ์การจัดการแคช

คุณต้องการกระบวนการในการเลิกใช้รายการแคชเมื่อข้อมูลในตารางที่ใช้งานที่ประกอบด้วยรายการแคชเปลี่ยนแปลง และกระบวนการเพื่อตรวจสอบ ระบุ และย้ายรายการแคชที่ไม่ต้องการออก

ส่วนนี้ประกอบด้วยหัวข้อดังต่อไปนี้

เลือกกลยุทธ์การจัดการแคช

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

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

เลิกใช้การแคชสำหรับระบบ

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

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

การกำหนดเวลาแคชและเวลาการเก็บข้อมูลแคชสำหรับตารางแบบฟิสิคัลที่กำหนด

คุณสามารถตั้งค่าแอททริบิวที่สามารถแคชได้สำหรับแต่ละตารางแบบฟิสิคัล ซึ่งช่วยให้คุณสามารถระบุว่าการสืบค้นสำหรับตารางนั้นเพิ่มในแคชหรือไม่เพื่อตอบรับการสืบค้นในอนาคต

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

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

  1. ใน Model Administration Tool ในเลเยอร์ฟิสิคัล ให้ดับเบิลคลิกตารางฟิสิคัล

    หากคุณใช้ Semantic Modeler โปรดดู คุณสมบัติทั่วไปของตารางแบบฟิสิคัลคืออะไร

  2. ในไดอะล็อกคุณสมบัติ ตารางแบบฟิสิคัล ในแท็บ ทั่วไป ให้เลือกรายการใดรายการหนึ่งต่อไปนี้:

    • ในการใช้งานการแคช เลือก สามารถแคชได้

    • ในการป้องกันไม่ให้แคชตาราง ให้ยกเลิกการเลือก สามารถแคชได้

  3. ในการตั้งค่าเวลาหมดอายุแคช ให้ระบุ เวลาการเก็บข้อมูลแคช และระบุหน่วยวัด (วัน, ชั่วโมง, นาที หรือวินาที) หากคุณไม่ต้องการแคชรายการเพื่อให้หมดอายุโดยอัตโนมัติ เลือก แคชไม่หมดอายุ

  4. คลิก ตกลง

วิธีที่การเปลี่ยนแปลงของโมเดลรูปแบบภาษามีผลต่อแคชการสืบค้น

เมื่อคุณแก้ไขโมเดลรูปแบบภาษาโดยใช้ Semantic Modeler หรือ Model Administration Tool การเปลี่ยนแปลงจะมีผลต่อรายการที่จัดเก็บในแคช ตัวอย่างเช่น หากคุณเปลี่ยนการกำหนดของออบเจกต์แบบฟิสิคัลหรือตัวแปรโมเดลรูปแบบภาษาแบบไดนามิค รายการแคชที่อ้างอิงออบเจกต์หรือตัวแปรนั้นอาจใช้ไม่ได้อีกต่อไป การเปลี่ยนแปลงเหล่านี้อาจทำให้จำเป็นต้องล้างแคช มีสองสถานการณ์ที่ต้องระวัง: เมื่อคุณแก้ไขโมเดลรูปแบบภาษาที่มีอยู่ของคุณ และเมื่อคุณสร้าง (หรืออัปโหลด) โมเดลรูปแบบภาษาใหม่

การเปลี่ยนแปลงกับโมเดลรูปแบบภาษา

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

เปลี่ยนเป็นตัวแปรโมเดลรูปแบบภาษาร่วม

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

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

กลยุทธ์สำหรับการใช้แคช

ประโยชน์อย่างหนึ่งที่สำคัญของแคชการสืบค้นคือการปรับปรุงประสิทธิภาพการสืบค้นที่ชัดเจน

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

หากคุณต้องการสร้างแคชเป็นตัวเลือกสำหรับผู้ใช้ทั้งหมด คุณอาจต้องสร้างแคชเป็นตัวเลือกกับการสืบค้นต่อไปนี้

SELECT User, SRs

หลังจากที่สร้างแคชเป็นตัวเลือกโดยใช้ SELECT User, SRs การสืบค้นต่อไปนี้คือการพบข้อมูลในแคช

SELECT User, SRs WHERE user = valueof(nq_SESSION.USER) (และผู้ใช้คือ USER1)
SELECT User, SRs WHERE user = valueof(nq_SESSION.USER) (และผู้ใช้คือ USER2)
SELECT User, SRs WHERE user = valueof(nq_SESSION.USER) (และผู้ใช้คือ USER3)

ส่วนนี้ประกอบด้วยหัวข้อดังต่อไปนี้

เกี่ยวกับการพบข้อมูลในแคช

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

การพบข้อมูลในแคชหมายความว่า Oracle Analytics Cloud สามารถใช้แคชเพื่อตอบรับการสืบค้นและไม่ได้ไปที่ฐานข้อมูล Oracle Analytics Cloud สามารถใช้แคชการสืบค้นเพื่อตอบรับการสืบค้นในการสรุปรวมระดับเดียวกันหรือที่สูงกว่า

แฟคเตอร์ต่างๆ จะกำหนดว่าพบข้อมูลในแคชหรือไม่ ตารางด้านล่างจะอธิบายแฟคเตอร์ต่างๆ เหล่านี้

แฟคเตอร์หรือกฎ คำอธิบาย

ชุดย่อยของคอลัมน์ในลิสต์ SELECT ต้องตรงกัน

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

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

คอลัมน์ในลิสต์ SELECT อาจประกอบด้วยเอ็กซ์เพรสชันในคอลัมน์ของการสืบค้นที่แคช

Oracle Analytics Cloud สามารถคำนวณเอ็กซ์เพรสชันในผลลัพธ์ที่แคชเพื่อตอบรับการสืบค้นใหม่ แต่คอลัมน์ทั้งหมดต้องอยู่ในผลลัพธ์ที่แคช ตัวอย่างเช่น การสืบค้น

SELECT product, month, averageprice FROM sales WHERE year = 2000

พบข้อมูลแคชในการสืบค้น:

SELECT product, month, dollars, unitsales FROM sales WHERE year = 2000

เนื่องจาก averageprice สามารถคำนวณได้จาก dollars และ unitsales (averageprice = dollars/unitsales)

ส่วนคำสั่ง WHERE ต้องเป็นชุดย่อยเดียวกันหรือแบบลอจิคัลตามความหมาย

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

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

  • ชุดย่อยของค่าลิสต์ IN การสืบค้นที่ขออีลิเมนต์ IN ลดลงแสดงคุณสมบัติการสืบค้นที่แคชสำหรับการพบข้อมูลในแคช ตัวอย่างเช่น การสืบค้นต่อไปนี้:

    SELECT employeename, region
    FROM employee, geography
    WHERE region in ('EAST', 'WEST')

    มีคุณสมบัติเหมาะสมเป็นการพบข้อมูลในการสืบค้นที่แคชต่อไปนี้:

    SELECT employeename, region
    FROM employee, geography
    WHERE region in ('NORTH', 'SOUTH', 'EAST', 'WEST')
  • โดยประกอบด้วยข้อจำกัด OR ที่น้อยว่า (แต่เหมือนกัน) ผลลัพธ์ที่แคช

  • ประกอบด้วยชุดย่อยแบบลอจิคัลของการเปรียบเทียบค่าคงที่ ตัวอย่างเช่น คำสั่งปฏิบัติงานต่อไปนี้:

    WHERE revenue < 1000

    มีคุณสมบัติเหมาะสมเป็นการพบข้อมูลในแคชในการสืบค้นเปรียบเทียบที่มีคำสั่งปฏิบัติงาน:

    WHERE revenue < 5000
  • ไม่มีส่วนคำสั่ง WHERE หากการสืบค้นไม่ได้แคชส่วนคำสั่ง WHERE ไว้ การสืบค้นที่ตรงตามกฎการพบข้อมูลในแคชอื่นๆ ทั้งหมดจะมีคุณสมบัติเป็นการพบข้อมูลในแคชโดยไม่คำนึงถึงส่วนคำสั่ง WHERE

นอกจากนี้ คอลัมน์ที่ใช้ในส่วนคำสั่ง WHERE ต้องอยู่ในลิสต์การประมาณการ ตัวอย่างเช่น การสืบค้นต่อไปนี้:

SELECT employeename
FROM employee, geography
WHERE region in ('EAST', 'WEST')

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

การสืบค้นไดเมนชันอย่างเดียวต้องเป็นแบบตรงกันทั้งหมด

หากการสืบค้นคือไดเมนชันอย่างเดียวหมายความว่าจะไม่มีข้อเท็จจริงหรือการวัดรวมในการสืบค้น เฉพาะการจับคู่ที่ตรงกันทั้งหมดของคอลัมน์การประมาณการในการสืบค้นที่แคชจะพบข้อมูลในแคช ลักษณะนี้จะป้องกันไม่ให้มี false positive เมื่อมีหลายที่มาแบบลอจิคัลสำหรับตารางไดเมนชัน

การสืบค้นที่มีฟังก์ชันพิเศษต้องเป็นแบบตรงกันทั้งหมด

การสืบค้นอื่นๆ ที่มีฟังก์ชันพิเศษ เช่น ฟังก์ชันชุดเวลา (AGO, TODATE และ PERIODROLLING), ฟังก์ชันขีดจำกัดและออฟเซ็ต (OFFSET และ FETCH), ฟังก์ชันความสัมพันธ์ (ISANCESTOR, ISLEAF, ISROOT และ ISSIBLING), ฟังก์ชันการสรุปรวมภายนอก และเมตริคฟิลเตอร์ทั่วไปต้องเป็นการจับคู่ที่ตรงกันทั้งหมดที่มีคอลัมน์การประมาณการในการสืบค้นที่แคช ในกรณีนี้ ฟิลเตอร์ต้องเป็นแบบตรงกันทั้งหมด สำหรับเมตริคฟิลเตอร์ หากสามารถบันทึกทับเมตริคฟิลเตอร์เป็นส่วนคำสั่ง WHERE แคชชุดย่อยอาจได้รับการปรับปรุง

ชุดตารางแบบลอจิคัลต้องเป็นแบบตรงกันทั้งหมด

เพื่อให้มีคุณสมบัติเป็นการพบข้อมูลในแคชทั้งหมด การสืบค้นขาเข้าทั้งหมดต้องมีชุดตารางแบบลอจิคัลเดียวกันกับรายการแคช กฎนี้หลีกเลี่ยงการการพบข้อมูลในแคชที่ไม่ถูกต้อง ตัวอย่างเช่น SELECT * FROM product ไม่ตรงกับ SELECT * FROM product, sales

ค่าตัวแปรเซสชันต้องตรงกันทั้งหมด รวมทั้งตัวแปรเซสชันการรักษาความปลอดภัย

หากคำสั่ง SQL ลอจิคัลหรือ SQL ฟิสิคัลอ้างถึงตัวแปรเซสชันใดๆ ค่าตัวแปรเซสชันต้องตรงกันทั้งหมด มิฉะนั้น การแคชจะไม่พบข้อมูล

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

เกี่ยวกับเงื่อนไขการรวมเทียบเท่า

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

แอททริบิว DISTINCT ต้องมีค่าเหมือนกัน

หากการสืบค้นที่แคชกำจัดเรคคอร์ดที่ซ้ำกันด้วยการประมวลผล DISTINCT (ตัวอย่างเช่น SELECT DISTINCT...) คำขอสำหรับคอลัมน์ที่แคชต้องมีการประมวลผล DISTINCT รวมอยู่ คำขอสำหรับคอลัมน์เดียวกันที่ไม่มีการประมวลผล DISTINCT จะไม่พบข้อมูลในแคช

การสืบค้นต้องมีระดับการสรุปรวมที่ใช้ร่วมกันได้

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

SELECT supplier, region, city, qtysold
FROM suppliercity

การสืบค้นต่อไปนี้ขอปริมาณที่ขายที่ระดับเมือง:

SELECT city, qtysold
FROM suppliercity

การสืบค้นที่สองส่งผลให้มีการพบข้อมูลในแคชในการสืบค้นแรก

การสรุปรวมเพิ่มเติมแบบจำกัด

ตัวอย่างเช่น หากมีการแคชการสืบค้นที่มีคอลัมน์ qtysold คำขอสำหรับ RANK(qtysold) จะทำให้ไม่มีการพบข้อมูลในแคช นอกจากนี้ การสืบค้นที่ขอ qtysold ที่ระดับประเทศสามารถเรียกการพบข้อมูลในแคชจากการสืบค้นที่ขอ qtysold ที่ระดับประเทศ ภูมิภาคได้ด้วย

ส่วนคำสั่ง ORDER BY ต้องประกอบด้วยคอลัมน์ในลิสต์ Select

การสืบค้นที่สั่งโดยคอลัมน์ที่ไม่มีอยู่ในลิสต์ Select จะทำให้ไม่พบข้อมูลในแคช

การวินิจฉัยลักษณะการพบข้อมูลในแคช

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

ENABLE_CACHE_DIAGNOSTICS=4

ตรวจสอบให้แน่ใจว่าผลลัพธ์แคชถูกต้องเมื่อใช้การรักษาความปลอดภัยฐานข้อมูลระดับแถว

เมื่อใช้กลยุทธ์การรักษาความปลอดภัยฐานข้อมูลระดับแถว เช่น Virtual Private Database (VPD) ผลลัพธ์ข้อมูลที่แสดงจะขึ้นอยู่กับชื่อผู้ใช้และรหัสผ่านการให้สิทธิ์ของผู้ใช้

ด้วยเหตุนี้ Oracle Analytics Cloud ต้องทราบว่าที่มาข้อมูลใช้การรักษาความปลอดภัยฐานข้อมูลระดับแถวหรือไม่และตัวแปรใดที่เกี่ยวข้องกับการรักษาความปลอดภัย

เพื่อให้แน่ใจว่าการพบข้อมูลในแคชเกิดขึ้นเฉพาะในรายการแคชที่รวมและตรงกับตัวแปรที่ทั้งหมดที่มีข้อมูลความปลอดภัยที่ละเอียดอ่อน คุณต้องคอนฟิเกอร์ออบเจกต์ฐานข้อมูลและออบเจกต์ตัวแปรของเซสชันให้ถูกต้องใน Model Administration Tool ดังนี้:

  • ออบเจกต์ฐานข้อมูล ในเลเยอร์แบบฟิสิคัล ในแท็บทั่วไปของไดอะล็อกฐานข้อมูล เลือก Virtual Private Database เพื่อระบุว่าที่มาข้อมูลใช้การรักษาความปลอดภัยฐานข้อมูลระดับแถว

    ถ้าคุณใช้การรักษาความปลอดภัยฐานข้อมูลระดับแถวที่มีการแคชที่ใช้งานร่วมกัน คุณ ต้อง เลือกตัวเลือกนี้เพื่อป้องกันการใช้รายการแคชร่วมกันซึ่งตัวแปรที่ไวต่อความปลอดภัยไม่ตรงกัน

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

รันชุดการสืบค้นเพื่อป็อปปูเลทแคช

เพื่อให้มีการพบข้อมูลในแคชที่เป็นไปได้มากที่สุด กลยุทธ์หนึ่งคือการรันชุดการสืบค้นเพื่อป็อปปูเลทแคช

ต่อไปนี้เป็นข้อแนะนำบางประการเกี่ยวกับประเภทการสืบค้นสำหรับใช้เมื่อสร้างชุดการสืบค้นที่มีการสืบค้นเพื่อสร้างแคชเป็นตัวเลือก

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

  • ลิสต์ SELECT ที่ไม่มีเอ็กซ์เพรสชัน การกำจัดเอ็กซ์เพรสชันในคอลัมน์ลิสต์ SELECT จะเพิ่มความเป็นไปได้สำหรับการพบข้อมูลในแคช คอลัมน์ที่แคชที่มีเอ็กซ์เพรสชันสามารถตอบรับการสืบค้นใหม่ที่มีเอ็กซ์เพรสชันเดียวกันได้ คอลัมน์ที่แคชที่ไม่มีเอ็กซ์เพรสชันสามารถตอบรับคำขอสำหรับคอลัมน์ที่มีเอ็กซ์เพรสชันใดๆ ได้ ตัวอย่างเช่น คำขอที่แคช เช่น:

    SELECT QUANTITY, REVENUE...
    

    สามารถตอบรับการสืบค้นใหม่ เช่น:

    SELECT QUANTITY/REVENUE... 
    

    แต่ไม่ใช่การย้อนกลับ

  • ไม่มีส่วนของคำสั่ง WHERE หากไม่มีส่วนของคำสั่ง WHERE ในผลลัพธ์ที่แคช จะสามารถใช้ผลลัพธ์เพื่อตอบรับการสืบค้นที่ตรงตามกฎการพบข้อมูลในแคชสำหรับลิสต์ที่เลือกที่มีส่วนของคำสั่ง WHERE ที่รวมคอลัมน์ในลิสต์การประมาณการ

โดยทั่วไป การสืบค้นที่ดีที่สุดเพื่อสร้างแคชเป็นตัวเลือกคือการสืบค้นที่ใช้ทรัพยากรการประมวลผลฐานข้อมูลจำนวนมากและที่มีแนวโน้มจะออกใหม่ ระวังอย่าให้มีการสร้างแคชที่มีการสืบค้นทั่วไปที่แสดงแถวหลายแถวเป็นตัวเลือก การสืบค้นเหล่านี้ (ตัวอย่างเช่น SELECT * FROM PRODUCTS โดย PRODUCTS แมปโดยตรงกับตารางฐานข้อมูลเดียว) จะกำหนดให้มีการประมวลผลฐานข้อมูลน้อยมาก ค่าใช้จ่ายได้แก่ค่าใช้จ่ายดำเนินการเครือข่ายและดิสก์ ซึ่งเป็นแฟคเตอร์ที่การแคชมีค่าใช้จ่ายไม่น้อยลง

เมื่อ Oracle Analytics Cloud รีเฟรชตัวแปรโมเดลรูปแบบภาษา จะมีการตรวจสอบโมเดลธุรกิจเพื่อกำหนดว่าอ้างอิงตัวแปรโมเดลรูปแบบภาษานั้นหรือไม่ หากอ้างอิง Oracle Analytics Cloud จะล้างข้อมูลแคชทั้งหมดสำหรับโมเดลธุรกิจนั้น โปรดดู วิธีที่การเปลี่ยนแปลงของโมเดลรูปแบบภาษามีผลต่อแคชการสืบค้น

ใช้เอเจนต์เพื่อสร้างแคชการสืบค้นเป็นตัวเลือก

คุณสามารถคอนฟิเกอร์เอเจนต์เพื่อสร้างแคชการสืบค้น Oracle Analytics Cloud เป็นตัวเลือก

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

  1. ใน Oracle Analytics Cloud เปิดเพจโฮมเพจแบบคลาสสิก และเลือก เอเจนต์ (ส่วน สร้าง)
  2. ที่แท็บ ทั่วไป เลือก ผู้รับ สำหรับตัวเลือก รันเป็น การสร้างแคชเป็นตัวเลือกแบบส่วนบุคคลใช้การแสดงข้อมูลของผู้รับแต่ละคนเพื่อปรับแต่งเนื้อหาการส่งมอบเอเจนต์สำหรับผู้ใช้แต่ละคน
  3. ที่แท็บ กำหนดการ ระบุเวลาที่คุณต้องการให้สร้างแคชเป็นตัวเลือก
  4. ทางเลือก: เลือก เงื่อนไข และสร้างหรือเลือกคำขอแบบมีเงื่อนไข ตัวอย่างเช่น คุณอาจมีโมเดลธุรกิจที่กำหนดเวลาที่กระบวนการ ETL เสร็จสมบูรณ์ คุณสามารถใช้รายงานที่อ้างอิงโมเดลธุรกิจนี้เป็นทริกเกอร์แบบมีเงื่อนไขเพื่อเริ่มการสร้างแคชเป็นตัวเลือก
  5. ที่แท็บ เนื้อหาการส่งมอบ เลือกเพจคำขอแต่ละรายการหรือแผงข้อมูลทั้งหมดที่คุณต้องการสร้างแคชเป็นตัวเลือก การเลือกเพจแผงข้อมูลช่วยให้ประหยัดเวลาได้
  6. ที่แท็บ ผู้รับ เลือกผู้ใช้แต่ละคนหรือกลุ่มที่จะเป็นผู้รับ
  7. ที่แท็บ ปลายทาง ให้ล้างข้อมูลปลายทางของผู้ใช้ทั้งหมด และเลือก Oracle Analytics Server Cache
  8. บันทึกเอเจนต์โดยเลือกปุ่ม บันทึก ที่มุมบนขวา

ความแตกต่างเพียงอย่างเดียวระหว่างเอเจนต์การสร้างแคชเป็นตัวเลือกและเอเจนต์อื่นๆ คือการล้างแคชก่อนหน้านี้โดยอัตโนมัติและจะไม่ปรากฏบนแผงควบคุมเมื่อแจ้งเตือน

หมายเหตุ:

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

ใช้ Model Administration Tool เพื่อล้างแคชสำหรับตารางที่ระบุ

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

หมายเหตุ:

หากคุณใช้ Semantic Modeler โปรดดู คุณสมบัติทั่วไปของตารางแบบฟิสิคัลคืออะไร

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