これは私の一般的なデータベース接続クラスです。私はこのクラスを使ってWebサイトからのクエリを実行しています。パフォーマンスを向上させるために、これに関するあなたの提案は何でしょうか。ありがとうございました。このC#4.0 MSSQL 2008 R2データベース接続クラスを改善できますか? - EXPERT質問
MSSQL 2008 R2 SP1 - マイクロソフトのVisual Studio 2010 SP1、C#4.0 - ASP.net 4.0
クラス
using System;
using System.Collections.Generic;
using System.Collections;
using System.Linq;
using System.Web;
using System.Data.Sql;
using System.Data.SqlClient;
using System.Data;
using System.IO;
/// <summary>
/// Summary description for DbConnection
/// </summary>
public class DbConnection
{
public static string srConnectionString = "server=localhost;database=myDB;uid=sa;pwd=MYPW;";
public DbConnection()
{
}
public static DataSet db_Select_Query(string strQuery)
{
DataSet dSet = new DataSet();
try
{
using (SqlConnection connection = new SqlConnection(srConnectionString))
{
connection.Open();
SqlDataAdapter DA = new SqlDataAdapter(strQuery, connection);
DA.Fill(dSet);
}
return dSet;
}
catch (Exception)
{
using (SqlConnection connection = new SqlConnection(srConnectionString))
{
if (srConnectionString.IndexOf("select Id from tblAspErrors") != -1)
{
connection.Open();
strQuery = strQuery.Replace("'", "''");
SqlCommand command = new SqlCommand("insert into tblSqlErrors values ('" + strQuery + "')", connection);
command.ExecuteNonQuery();
}
}
return dSet;
}
}
public static void db_Update_Delete_Query(string strQuery)
{
try
{
using (SqlConnection connection = new SqlConnection(srConnectionString))
{
connection.Open();
SqlCommand command = new SqlCommand(strQuery, connection);
command.ExecuteNonQuery();
}
}
catch (Exception)
{
strQuery = strQuery.Replace("'", "''");
using (SqlConnection connection = new SqlConnection(srConnectionString))
{
connection.Open();
SqlCommand command = new SqlCommand("insert into tblSqlErrors values ('" + strQuery + "')", connection);
command.ExecuteNonQuery();
}
}
}
}
1)性能をチューニングする前にボトルネックを特定しましたか? – Andrey
2) 'catch(Exception)'にロジックを書くことは決してありません。エラー処理コード – Andrey
が必要です。データベースがトランザクション/接続で圧倒された場合、その負担を増やすことは意味がありません。 – WiseGuyEh