2012-12-19 12 views
11

Bene questo è il primo metodoLe impostazioni di autenticazione su SQL Server 2008 R2 farebbero qualche differenza di prestazioni?

public static string srConnectionString = "server=localhost;database=myDB; "+ 
" uid=sa;pwd=myPW;"; 

E questo è il secondo metodo

public static string srConnectionString = "server=localhost;database=myDB; "+ 
" integrated security=SSPI;persist security info=False; Trusted_Connection=Yes;"; 

Ci sono delle differenze di prestazioni o di qualsiasi altra differenza tra queste 2 stringhe di connessione?

Qui la mia classe di connessione SQL qualche suggerimento?

using System; 
using System.Data.Sql; 
using System.Data.SqlClient; 
using System.Data; 

public static class DbConnection 

{ 
    public static string srConnectionString = "server=localhost; database=myDB; uid=sa; pwd=myPW;"; 

    public static DataSet db_Select_Query(string strQuery) 
    { 
     DataSet dSet = new DataSet(); 
     if (strQuery.Length < 5) 
      return dSet; 
     try 
     { 
      using (SqlConnection connection = new SqlConnection(srConnectionString)) 
      { 
       connection.Open(); 
       using (SqlDataAdapter DA = new SqlDataAdapter(strQuery, connection)) 
       { 
        DA.Fill(dSet); 
       } 
      } 
      return dSet; 
     } 
     catch 
     { 
      using (SqlConnection connection = new SqlConnection(srConnectionString)) 
      { 
       if (srConnectionString.IndexOf("select Id from tblAspErrors") != -1) 
       { 
        connection.Open(); 
        strQuery = strQuery.Replace("'", "''"); 

        using (SqlCommand command = new SqlCommand("insert into tblSqlErrors values ('" + strQuery + "')", connection)) 
        { 
         command.ExecuteNonQuery(); 
        } 
       } 
      } 
      return dSet; 
     } 
    } 

    public static void db_Update_Delete_Query(string strQuery) 
    { 
     if (strQuery.Length < 5) 
      return; 
     try 
     { 
      using (SqlConnection connection = new SqlConnection(srConnectionString)) 
      { 
       connection.Open(); 
       using (SqlCommand command = new SqlCommand(strQuery, connection)) 
       { 
        command.ExecuteNonQuery(); 
       } 
      } 
     } 
     catch 
     { 
      strQuery = strQuery.Replace("'", "''"); 
      using (SqlConnection connection = new SqlConnection(srConnectionString)) 
      { 
       connection.Open(); 
       using (SqlCommand command = new SqlCommand("insert into tblSqlErrors values ('" + strQuery + "')", connection)) 
       { 
        command.ExecuteNonQuery(); 
       } 
      } 
    } 
} 

}

risposta

5

La differenza di prestazioni è irrilevante piccolo che può essere ignorato. I controlli di autenticazione sono

  1. ... eseguiti solo all'accesso. La connessione non viene ricontrollata per ogni query. Tuttavia, con il pool di connessioni, la connessione viene autenticato e azzerato molte volte, molto probabilmente per quasi ogni query
  2. ... lo stesso di ogni accesso ai file e altre attività che coinvolgono il dominio sempre controllato in Active Directory

FYI queste due impostazioni sono le stesse (utilizzare uno o l'altro):

integrato di sicurezza = SSPI
Trusted_Connection = Sì

+0

quindi hai detto pochissima differenza. quale sopra è migliore 1 o 2? Intendo quale contiene password o non ne contiene uno? e il pool di connessioni è abilitato come predefinito? questa stringa viene utilizzata sul sito Web asp.net che riceve migliaia di query al secondo. – MonsterMMORPG

+0

in realtà le mie osservazioni sono che il primo funziona meglio sul server – MonsterMMORPG

Problemi correlati