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

การกรองบิตแมปที่ได้รับการปรับให้เหมาะสมที่สุดมีการใช้งานอย่างไร


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

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

โอเปอเรเตอร์ที่ใช้ตัวกรองบิตแมปที่ปรับให้เหมาะสมรวมถึงเพรดิเคตบิตแมปในการออกแบบ PROBE ([Opt_Bitmap1001], {[column_name]} [, 'ในแถว']) บิตแมปเพรดิเคตรายงานเกี่ยวกับข้อมูลต่อไปนี้:

  • ชื่อบิตแมปสัมพันธ์กับชื่อที่แนะนำในตัวดำเนินการบิตแมป คำนำหน้า "Opt_" หมายถึงมีการใช้ตัวกรองบิตแมปที่ปรับให้เหมาะสม

  • คอลัมน์ที่ตรวจสอบตรงข้ามกับ นี่คือคำที่ข้อมูลที่กรองแล้วไหลผ่านแผนผัง

  • ว่าโพรบบิตแมปต้องการการปรับให้เหมาะสมในแถวหรือไม่ เมื่อเป็นเช่นนั้น โพรบบิตแมปจะถูกเรียกใช้ด้วยพารามิเตอร์ IN ROW หรือไม่มีพารามิเตอร์นี้

ข้อกำหนดในการกรองบิตแมปที่ปรับให้เหมาะสม

การกรองบิตแมปที่ปรับให้เหมาะสมมีข้อกำหนดดังต่อไปนี้ -

  • ตารางข้อเท็จจริงคาดว่าจะมีอย่างน้อย 100 หน้า เครื่องมือเพิ่มประสิทธิภาพถือว่าตารางขนาดเล็กเป็นตารางมิติ

  • มีเพียงการรวมภายในระหว่างตารางแฟคท์และตารางไดเมนชันเท่านั้น

  • เพรดิเคตการรวมระหว่างตารางแฟคท์และตารางไดเมนชันควรเป็นการรวมคอลัมน์เดียว แต่ไม่จำเป็นต้องเป็นความสัมพันธ์ระหว่างคีย์หลักกับคีย์ต่างประเทศ มีการเลือกคอลัมน์ที่เป็นจำนวนเต็ม

  • การรวมกับมิติจะได้รับการปฏิบัติต่อเมื่อคาร์ดินัลลิตี้อินพุตของมิติมีขนาดเล็กกว่าคาร์ดินัลลิตี้อินพุตจากตารางแฟคท์เท่านั้น

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

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