ฉันทำงานกับผู้จัดจำหน่ายด้วยข้อตกลงที่พวกเขาให้แอปพลิเคชันหลักและฉันสามารถสร้างส่วนขยายของตัวเองได้ตราบใดที่ฉันไม่ได้แก้ไขแอปพลิเคชันหลัก มันสร้างขึ้นใน ColdFusion เชื่อมต่อกับฐานข้อมูล SQL Server 2005
บางรายงานที่ฉันสร้างขึ้นนั้นขึ้นอยู่กับมุมมองโดยใช้ฟังก์ชั่นที่คำนวณจากตารางหลักและรายงานเริ่มช้ามากเมื่อตารางใหญ่ขึ้น เพื่อเพิ่มความเร็วในรายงานที่ฉันต้องการที่จะใช้มุมมองการจัดทำดัชนี แต่หลังจากสร้างมุมมองที่จัดทำดัชนีไว้ในสภาพแวดล้อมการทดสอบของฉันแล้วแอปพลิเคชันหลักไม่สามารถแทรกลงในตารางหลักได้อีกต่อไป (ซึ่งจะส่งกลับข้อผิดพลาดที่ARITHABORT
จำเป็นต้องON
ใช้เมื่อใช้มุมมองที่จัดทำดัชนี)
ดังนั้นดูเหมือนว่าเพื่อที่จะใช้มุมมองที่มีการจัดทำดัชนีฉันต้องมีแอปพลิเคชันหลักSET ARITHABORT ON
ทุกครั้งที่แทรก / ปรับปรุงตารางหลัก ฉันวิ่งในสภาพแวดล้อมการทดสอบของฉัน:
ALTER DATABASE MyDatabase SET ARITHABORT ON;
และดูเหมือนว่าจะทำงานได้ดี แต่ผู้ขายของฉันบอกว่าเนื่องจากแอปพลิเคชันมีการค้นหาหลายพันครั้งอาจมีความเสี่ยงที่การตั้งค่านี้อาจทำลายหนึ่งในการค้นหาเหล่านี้และหากเรามีปัญหาฐานข้อมูลที่ไม่คาดคิดในอนาคตพวกเขาจะยืนยันว่าจะคืนค่าเริ่มต้น
มีคำถามที่เกิดขึ้นจริงที่จะถูกทำลายโดยSET ARITHABORT ON
? มีสถานการณ์ใดบ้างที่จะรักษาไว้ได้ดีกว่าOFF
?
TL; DR สำหรับมุมมองที่จัดทำดัชนีใหม่ของฉันเพื่อการทำงานฉันต้องตั้งค่าARITHABORT ON
ฐานข้อมูลทั้งหมด แต่ผู้ขายของฉันเตือนว่ามันจะเป็นความเสี่ยงของตัวเอง มีความเสี่ยงหรือไม่?