Имеются ли параметры проверки подлинности на 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;";
Есть ли разница в производительности или какая-либо другая разница между этими двумя строками соединения?
Здесь мой класс подключения 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();
}
}
}
}
}
Ответы
Ответ 1
Разница в производительности незначительно мала, и ее можно игнорировать. Проверка подлинности выполняется
- ... выполняется только при входе в систему. Соединение не перепроверяется для каждого запроса. Однако при объединении пула соединение аутентифицируется и reset много раз, вполне возможно, почти для каждого запроса
- ... так же, как и каждый доступ к файлу и другая активность, связанная с проверкой домена в Active Directory
FYI эти две настройки одинаковы (используйте один или другой):
интегрированная безопасность = SSPI
Trusted_Connection = Да