c# - SQL Server 2008 R2 上的身份验证设置是否会对性能产生影响?

标签 c# asp.net sql-server performance authentication

好的这是第一种方法

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. ...仅在登录时执行。不会为每个查询重新检查连接。然而,对于连接池,连接会被多次验证和重置,很可能对于几乎每个查询都是如此
  2. ...与针对 Active Directory 检查域的每个文件访问和其他事件相同

仅供引用,这两个设置是相同的(使用一个或另一个):

integrated security=SSPI
Trusted_Connection=Yes

关于c# - SQL Server 2008 R2 上的身份验证设置是否会对性能产生影响?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13959707/

相关文章:

sql-server - 我可以与 ADO 一起使用的最简单的数据库类型是什么?

sql-server - 找不到 SSISDB 并且无法在 SQL Server 2012 中创建新目录

C# 将 XML 数据绑定(bind)到 ListView WPF

c# - 如何通过服务引用发布 Reflection.MethodBase

c# - Process.PrivateMemorySize64 返回提交的内存而不是私有(private)的

jquery - 制作一个用户控件的 DLL 以及嵌入的 Jquery

c# - 将标签的 BackColor 绑定(bind)为数据库中的十六进制颜色值

c# - 如何在不使用 Azure 的情况下在控制台应用程序的 Visual Studio 2015 诊断工具窗口中查看 SQL 事件(Application Insights)?

asp.net - HTML 电子邮件中的嵌入图像无法在手机上显示

sql - 计数和不同功能