2009-05-08 29 views
15

Ứng dụng của tôi tiếp tục chạy vào Thời gian hết hạn SqlExceptions. Vấn đề là truy vấn này là một truy vấn đơn giản sẽ phải chạy trong một khoảng thời gian khá. Tôi đang gặp khó khăn trong việc tìm ra nơi ngoại lệ này xảy ra. Đây có phải là một thời gian chờ được tạo ra tại máy chủ cơ sở dữ liệu hoặc là nó xảy ra trong chương trình của tôi? Hoặc nếu nó có thể là cả hai, làm thế nào để tôi tìm ra cái nào?Điều gì gây ra hết thời gian chờ SqlExceptions trong LINQ to SQL?

Và cuối cùng, làm cách nào để gia hạn khoảng thời gian chờ?

Trả lời

10

Có khả năng bạn đang chạy trên CommandTimeout đặt trên DataContext của mình. Điều này mặc định là 30 giây.

Tất cả những gì bạn cần làm là đặt thuộc tính trên DataContext trước khi bạn thực hiện truy vấn của mình.

+3

Và tôi phải làm như thế nào? –

3

Điều này xảy ra do thời gian chờ mặc định là 30 giây. Bạn có thể thay đổi điều này bằng cách thiết lập một thuộc tính Timeout trên chuỗi kết nối. Alternatley bạn có thể thiết lập điều này trên DataContext.

Đây là một dự án mã số article về điều này.

15

tăng timeout = BAD
truy vấn sửa chữa = TỐT

Tôi không chắc chắn của tất cả các chi tiết có liên quan, nhưng nhìn chung các followng áp dụng:

khi một truy vấn chạy làm chậm những điều sau đây trong studio quản lý:

  • chạy SET ShowPlan_All ON
  • chạy truy vấn của bạn
  • xem kết quả cho từ "quét". vấn đề của bạn là có.

"Quét" = chạm vào từng hàng (bảng hoặc chỉ mục). Bạn có muốn "quét" một cuốn sách điện thoại tìm kiếm một số hoặc sử dụng chỉ mục không?

+2

Chúng tôi đã điều chỉnh truy vấn nhiều nhất có thể. Thật không may, chỉ có rất nhiều bạn có thể làm để tăng tốc quá trình kéo 15k hồ sơ ra khỏi một bảng 2 triệu hồ sơ thông qua một máy chủ được liên kết. –

+0

chỉnh sửa câu hỏi của bạn và bao gồm đầu ra từ SET ShowPlan_All ON –

+1

@ Jason Baker, tôi có nhiều truy vấn tham gia trên nhiều bảng có nhiều hàng hơn 2 triệu của bạn và chúng chạy nhanh hơn rất nhiều so với 30 giây. Bạn nói "Chúng tôi đã điều chỉnh truy vấn về nhiều nhất có thể", và đó là lý do tại sao tôi cung cấp trợ giúp của tôi. –

Các vấn đề liên quan