Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

cách phát hiện thời gian chờ của máy chủ sql từ ứng dụng .NET mà không sử dụng bắt Ngoại lệ

Không, không hẳn.

Cách tiêu chuẩn là sử dụng try/catch và xử lý SqlException Số 1205 (nạn nhân bế tắc) và thử lại truy vấn của bạn:

    try
    {
        // do stuff...
    }
    catch (SqlException sqlEx)
    {
        switch (sqlEx.Number)
        {
            case -2:   // Client Timeout
            case 701:  // Out of Memory
            case 1204: // Lock Issue 

            case 1205: // >>> Deadlock Victim
                // handle deadlock
                break;

            case 1222: // Lock Request Timeout
            case 2627: // Primary Key Violation
            case 8645: // Timeout waiting for memory resource 
            case 8651: // Low memory condition 
            ...
        }
    }

[Lưu ý:các câu lệnh ngắt không được thêm vào để tạo sự gọn nhẹ

Cũng lưu ý , nhiều vấn đề về khóa có thể được loại bỏ bằng cách cung cấp các chỉ mục phù hợp.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server 2008:Thay đổi kiểu dữ liệu hàng loạt

  2. Truy vấn SELECT với điều kiện CASE và SUM ()

  3. Microsoft SQL Server 2008 Management Studio - Sự cố về Kết nối / Máy chủ / Phiên bản

  4. Nhiều câu lệnh chọn trong thủ tục được lưu trữ để có được kết quả mong muốn

  5. Khắc phục sự cố trong Sql Server 2008