2012-12-19 5 views
11

さてさて、これは第一の方法SQL Server 2008 R2の認証設定はパフォーマンスにどのような違いがありますか?

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

であり、これは

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

第二の方法である任意のパフォーマンスの違いやこれらの2つの接続文字列の間に、他の違いがありますか?

ここで私のSQL接続クラスの任意の提案?

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(); 
       } 
      } 
    } 
} 

}

答えて

5

パフォーマンスの違いは無視できるわずかに小さいです。認証チェックは

  1. ...ログイン時にのみ実行されます。クエリはクエリごとに再チェックされません。接続プールでただし、接続は、すべてのファイルアクセスとActive Directoryに対してFYI

を確認取得ドメインを含む他の活動と同じ...ほぼすべてのクエリ

  • のために非常に可能性、認証され、何度もリセットされますこれら2つの設定は、(どちらか一方を使用する)と同じである。

    統合セキュリティ= SSPI
    Trusted_Connection =はい

  • +0

    なので、ほとんど違いはありません。上記の方が良いです。 1または2?私はどれがパスワードを含んでいるのか、それとも1つを含んでいないのか?接続プーリングはデフォルトで有効になっていますか?この文字列は毎秒何千ものクエリを取得するasp.net Webサイトで使用されています。 – MonsterMMORPG

    +0

    実際に私の観察は、最初のものがサーバー上でよりうまく動作することです – MonsterMMORPG

    関連する問題