ฉันใช้ SQL Server 2008 R2 SP1 บนกล่อง Windows Server 2008 ฉันมี. สคริปต์ NET ที่ทำงานจาก Visual Studio 2010 ที่ทำสิ่งต่อไปนี้:
- เข้าถึงฐานข้อมูล
- ทำการเปลี่ยนแปลง
- iterates
จำนวนครั้งทั้งหมดที่จะทำซ้ำคือ 150 แต่จะหยุดที่ 100 การเชื่อมต่อและฉันไม่สามารถหาสาเหตุ ฉันสามารถปรับสคริปท์ของฉันให้ใช้แค่เธรดเดียว แต่ฉันอยากรู้ว่าฉันขาดการตั้งค่าการเชื่อมต่อสูงสุดเพราะจะมีประโยชน์มากกว่าสำหรับการอ้างอิงในอนาคต
นี่คือสิ่งที่ฉันตรวจสอบแล้ว:
- สตริงการเชื่อมต่อ SQL ใน Visual Studio 2010 (ตั้งค่าเป็น 1,000)
- คุณสมบัติการเชื่อมต่ออินสแตนซ์ฐานข้อมูล SSMS (ตั้งค่าเป็น 0 [อินฟินิตี้] การเชื่อมต่อผู้ใช้)
- Googled ข้อมูลบางอย่างใน Server 2008 ดูเหมือนว่าสามารถรองรับการเชื่อมต่อมากกว่า 100 รายการ
- ก้าวผ่านโค้ดของฉันไปพร้อม ๆ กัน
SP_WHO2ซึ่งให้ข้อมูลเพิ่มเติมเกี่ยวกับการเชื่อมต่อแบบลอจิคัลเมื่อเห็นว่า # ของการเชื่อมต่อเริ่มต้นที่ 52 และข้อผิดพลาดของสคริปต์ที่มีข้อผิดพลาด - เปลี่ยนสตริงการเชื่อมต่อที่จะใช้
Data Source=PerfSQL02;Initial Catalog=Masked;Integrated Security=True;Max Pool Size=1000
ฉันไม่แน่ใจว่าจะตรวจสอบที่อื่นฉันรู้ว่าฉันมีชิ้นส่วนที่เคลื่อนไหวมากมายที่นี่ แต่ฉันได้รับความรู้สึกว่าฉันเพิ่งขาดการตั้งค่าสระว่ายน้ำสูงสุดที่ไหนสักแห่ง
System.Data.SqlClientเริ่มต้นที่ 100 ซึ่งเป็นสาเหตุที่คุณจะเห็นว่าหมดการเชื่อมต่อพูล)