sql >> Databáze >  >> RDS >> Sqlserver

jak zjistit časový limit serveru SQL z aplikace .NET bez použití výjimky catch

Ne, opravdu ne.

Standardním způsobem je použití try/catch a zpracovat SqlException Číslo 1205 (oběť uváznutí) a opakujte dotaz:

    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 
            ...
        }
    }

[Poznámka:příkazy break nejsou přidány kvůli kompaktnosti

Upozorňujeme také , mnoho problémů se zamykáním lze eliminovat poskytnutím vhodných krycích indexů.



  1. Deklarujte proměnnou složeného typu v PostgreSQL pomocí %TYPE

  2. Funkce ADD_MONTHS() v Oracle

  3. umístění datového adresáře mysql

  4. Mysql stop slova a zápas