เช่นเดียวกับทุกสิ่งมันขึ้นอยู่กับ
หากคุณใช้ OCI ฉันถือว่าคุณกำลังพัฒนาแอปพลิเคชันไคลเอนต์ / เซิร์ฟเวอร์ โดยทั่วไปฉันต้องการฐานข้อมูลในสถานการณ์นั้นเพื่อสนับสนุนการเชื่อมต่อเซิร์ฟเวอร์ที่ใช้ร่วมกันและฉันต้องการร้องขอการเชื่อมต่อเซิร์ฟเวอร์ที่ใช้ร่วมกันเมื่อแอปพลิเคชันเชื่อมต่อกับฐานข้อมูล ที่ช่วยเพิ่มประสิทธิภาพของแอปพลิเคชันโดย จำกัด จำนวนงานที่ฐานข้อมูลต้องทำเพื่อสร้างเซสชันใหม่ ที่มีผลข้างเคียงของการปล่อยให้ทรัพยากรเพิ่มเติมพร้อมใช้งานบนเซิร์ฟเวอร์สำหรับผู้อื่น การใช้การเชื่อมต่อเซิร์ฟเวอร์ที่ใช้ร่วมกันจะเกี่ยวข้องกับเส้นทางของรหัสที่ยาวขึ้นเมื่อฐานข้อมูลที่เรียกใช้คิวรีที่ตามมาเนื่องจากแบบสอบถามต้องถูกส่งไปยังกระบวนการเซิร์ฟเวอร์ที่ใช้ร่วมกัน แต่โดยทั่วไปจะไม่ใช่เรื่องใหญ่หากจำนวนกระบวนการเซิร์ฟเวอร์ที่ใช้ร่วมกันนั้นสมเหตุสมผล
การเปิดจำนวนเซสชันอาจเป็นปัญหาได้หาก DBA ไม่ได้ใช้การจัดการ PGA อัตโนมัติ หากคุณใช้การจัดการ PGA ด้วยตนเอง PGA จะได้รับการกำหนดค่าแบบต่อเซสชันดังนั้นแต่ละเซสชันสามารถจัดสรรแยกต่างหากSORT_AREA_SIZE
สำหรับการเรียงลำดับระหว่างองค์ประกอบ PGA อื่น ๆ หากคุณสร้างเซสชันจำนวนมากในฐานข้อมูลโดยใช้การจัดการ PGA ด้วยตนเองและแต่ละเซสชันพยายามเพิ่มประสิทธิภาพการใช้งาน PGA ให้มากที่สุดคุณสามารถอดเซิร์ฟเวอร์ RAM และทำให้เกิดปัญหาประสิทธิภาพการทำงานสำหรับทุกคน สมมติว่าคุณใช้ Oracle 10.1 หรือใหม่กว่าอย่างไรก็ตามมีการจัดการ PGA อัตโนมัติ ในกรณีดังกล่าว DBA จะกำหนดค่าPGA_AGGREGATE_TARGET
(หรือรวม PGA ในขนาดMEMORY_TARGET
11g) และฐานข้อมูลจะดูแลให้มั่นใจว่าการรวม PGA ในทุกเซสชันนั้นถูก จำกัด เพื่อให้ฐานข้อมูลหมดทรัพยากร
หากฐานข้อมูลรองรับการเชื่อมต่อเซิร์ฟเวอร์ที่ใช้ร่วมกันแอปพลิเคชันของคุณจะได้รับการเชื่อมต่อเซิร์ฟเวอร์ที่ใช้ร่วมกันและฐานข้อมูลใช้การจัดการ PGA อัตโนมัติ DBA ส่วนใหญ่จะไม่สนใจจำนวนเซสชันที่คุณสร้างมากเกินไป
ตอนนี้ถ้าคุณกำลังสร้างเซสชันจำนวนมากเพื่อให้คุณสามารถทำงานได้มากขึ้นในแบบคู่ขนานนั่นจะสร้างปัญหาเกี่ยวกับประสิทธิภาพมากกว่าจำนวนเซสชัน มันง่ายพอที่จะกำหนดค่าฐานข้อมูลเพื่อรองรับ 1,000 เซสชันตัวอย่างเช่นมันยากมากที่จะกำหนดค่าฐานข้อมูลที่จะไม่ตายในกองถ้าทั้ง 1000 เซสชันพร้อมกันออกแบบสอบถามเนื้อกับคลังข้อมูล หากแอปพลิเคชันของคุณใช้ทรัพยากรทั้งหมดที่มีอยู่ในฐานข้อมูลสำหรับการสืบค้นของคุณ DBA อาจต้องการพิจารณาใช้Oracle Resource Managerเพื่อจัดลำดับความสำคัญของแอปพลิเคชันและ / หรือผู้ใช้ที่แตกต่างกัน ตัวอย่างเช่น DBA สามารถกำหนดค่าตัวจัดการทรัพยากรเพื่อให้การใช้งาน CPU เท่ากับ 100% แอปพลิเคชันของคุณในการรวมรับ 50% ของ CPU แอปพลิเคชันอื่น ๆ ในการรวมได้รับ 25% และอื่น ๆ ทั้งหมดจะได้รับ 25% . หากไม่มีคำขออื่นใดที่รอการอนุมัติแอปพลิเคชันของคุณจะสามารถใช้ CPU ทั้งหมดได้ 100%
หากคุณกำลังทำสิ่งต่าง ๆ ในแบบขนานมันอาจมีประโยชน์ในการตรวจสอบความสามารถของ Oracle ในการเรียกใช้คำสั่งแบบขนานเพราะอาจเกี่ยวข้องกับค่าใช้จ่ายน้อยกว่าการเขียนโค้ดการขนานของคุณเอง ตัวอย่างเช่นฉันคาดหวังว่ามันจะง่ายกว่ามากและอาจจะเร็วกว่าที่จะเขียนแอปพลิเคชันไคลเอนต์ที่ส่งคำสั่งแบบอนุกรมซึ่งใช้ Oracle แบบสอบถามแบบขนานเพื่อดำเนินการแทนการเปิดหลายเซสชันและดำเนินการแต่ละคำสั่ง Oracle ไม่ได้ใช้การสืบค้นแบบขนานเพื่อดำเนินการคำสั่งใด ถ้าคุณใช้การสอบถามแบบขนานฐานข้อมูลยังสามารถปรับจำนวนของทาสที่ขนานที่เกิดขึ้นเพื่อให้เมื่อฐานข้อมูลไม่ว่างโดยเฉพาะอย่างยิ่งเริ่มต้นที่ขนานทาสที่น้อยกว่าและเมื่อฐานข้อมูลค่อนข้างว่างทาสขนานเริ่มขึ้น