2009-02-04 37 views
9

Tôi có một kịch bản lệnh SQL đơn giản mà tôi thực thi thủ công từ Visual Studio. Nó là một kịch bản tạo dữ liệu vì vậy tôi mong đợi nó mất một vài phút để chạy. Nhưng tôi nhận được lỗi sau.Làm cách nào để thay đổi thời gian chờ cho truy vấn được thực hiện thủ công trong SQL Server?

Hết giờ hết hạn. Khoảng thời gian chờ đã trôi qua trước khi hoàn tất thao tác hoặc máy chủ không phải là phản hồi.

Tôi không thể thay đổi bất kỳ cài đặt máy chủ chung nào để có thể chạy một tệp này. Có bất kỳ lệnh nào mà tôi có thể đặt ở đầu tệp để tăng thời gian chờ cho tập lệnh/giao dịch đó không?

+0

Phần script của một dự án DB? –

+0

Tập lệnh không phải là một phần của dự án DB. – tpower

Trả lời

0

Không sao, tôi có thể chạy tốt với SQL Management Studio.

1

Máy chủ SQL sẽ đợi vô thời hạn trước khi quay lại người dùng. Nhiều hơn khả năng có một thuộc tính thời gian chờ phía khách hàng được thiết lập. Ví dụ: bạn có thể đặt timeout property for the ADO command object.

Chúc mừng, Andy.

12

Nếu bạn sử dụng SQL Management Studio, có hai thiết lập trong các tùy chọn (tôi đề cập đến Management Studio từ SQL Server 2005, mà tôi sử dụng):
(tôi Management Studio là bằng tiếng Đức, vì vậy tôi hy vọng tôi đã dịch tên chính xác sang tiếng Anh)

bạn có thể tìm thấy cả hai trong menu dưới "Extras" -> "Options"

trong các tùy chọn, một trong những đầu tiên là dưới "Query Execution", bạn có thể đặt "Thời gian chờ thực hiện" ở đó (tôi đã ở trên không)

Điều thứ hai (và tôi nghĩ đây là những gì bạn cần) là tùy chọn đầu tiên trong "Nhà thiết kế", nó có nội dung như "Ghi đè thời gian chờ để cập nhật thiết kế bảng", bạn có thể chọn hộp và đặt giá trị ở đó.
Một số thời gian trước đây, tôi đã có một vấn đề tương tự như của bạn (thông báo thời gian chờ khi chạy ALTER TABLE trên một bảng lớn), và tôi đã giải quyết nó bằng cách đặt tùy chọn này thành giá trị cao hơn.

+3

+1 Thông tin tốt và dễ làm theo Tôi chỉ gặp vấn đề tương tự và giải quyết nó. Bản dịch tốt quá, chỉ một điều trong phiên bản tiếng Anh nó là "Công cụ" -> "Tùy chọn". – 182764125216

+0

Điều này không hiệu quả đối với tôi. Tôi đã cung cấp câu trả lời của riêng tôi. –

4

Tăng tài sản CommandTimeout sẽ giải quyết vấn đề ví dụ:

SqlCommandObject.CommandTimeout = 500000

1

câu trả lời @christian không làm việc cho tôi (thay đổi các thiết lập trong SQL Management Studio).

Câu trả lời của Biswa có hiệu quả đối với tôi. Tôi sẽ bao gồm mã để làm rõ

SqlCommand cmd = new SqlCommand("MyReport", conn); 
cmd.CommandType = CommandType.StoredProcedure; 
cmd.CommandTimeout = 60; /* note default is 30 sec */ 
4

Tăng thời gian chờ của Truy vấn và Giá trị thời gian chờ kết nối trong Visual Studio bằng cách sử dụng quy trình được nêu dưới đây. Thay đổi Timeout Query:

Trong Visual Studio IDE, điều hướng đến Tools -> Options -> Công cụ cơ sở dữ liệu -> thiết kế Query và Xem Bạn có thể bỏ chọn tùy chọn Cancel truy vấn chạy dài hoặc thay đổi giá trị của Hủy sau khi lựa chọn đến một giá trị cao hơn. Thay đổi Timeout kết nối:

Trong Visual Studio IDE, cho phép Server Explorer bằng cách điều hướng để xem -> Server Explorer Trong cửa sổ Server Explorer, bấm chuột phải vào kết nối đến SQL Server, nơi các đối tượng CLR đang được triển khai và chọn Modify Kết nối. Nhấp vào nút Nâng cao trên cửa sổ Sửa đổi kết nối. Trong cửa sổ Thuộc tính Nâng cao, hãy thay đổi giá trị Thời gian chờ kết nối trong phần Khởi tạo thành giá trị cao hơn.

http://support.microsoft.com/kb/2011805

0

Chỉ muốn làm rõ các bước cụ thể cho Microsoft SQL Server Management Studio 2005 ... 'thiết kế' mặc định chắc chắn cần phải được điều chỉnh ngay cả khi nó được thiết lập để '0' trong 'Query Execution' như Các vars 'Designer' ghi đè lên các thiết lập 'Query Execution'.

  1. Mở Microsoft SQL Server Management Studio 2005
  2. Tools >> Tùy chọn
  3. Mở rộng 'thiết kế'
  4. tôi đã tìm thấy thiết lập 'Transaction time-out sau khi' tới 120 đã làm việc tốt cho bản cập nhật cho bảng với hàng triệu bản ghi.
Các vấn đề liên quan