F.P*_*F.P 1 c# sql stored-procedures
Hoho那里.
我只是试图使用存储过程来增强我的应用程序(.NET 3.5,C#)的性能.
所以我写了一个小测试应用程序,看看它们与普通查询相比有多快,如下所示:
private static long _StartStored;
private static long _EndStored;
private static long _StartNormal;
private static long _EndNormal;
private static TimeSpan _StoredTime;
private static TimeSpan _NormalTime;
private static string[] _Stored = new string[102000];
private static string[] _Normal = new string[102000];
static void Main(string[] args)
{
Console.WriteLine("Querying 2000 normal queries");
_SQLConnection = new SqlConnection(/*my_connection*/);
_SQLConnection.Open();
_StartNormal = DateTime.Now.Ticks;
for (int i = 100000; i <= 102000; i++)
{
DataTable _ResultDataTable = new DataTable();
SqlDataAdapter _SQLAdapter = new SqlDataAdapter(/*my_query*/, _SQLConnection);
_SQLAdapter.Fill(_ResultDataTable);
if (_ResultDataTable.Rows.Count > 0)
_Normal[i] = _ResultDataTable.Rows[0]["row"].ToString();
}
_EndNormal = DateTime.Now.Ticks;
_NormalTime = TimeSpan.FromTicks(_EndNormal - _StartNormal);
Console.WriteLine("Total execution time: " + _NormalTime.ToString());
//-----------------------------------------------------------------------------
Console.WriteLine("Querying 2000 stored procedures");
_StartStored = DateTime.Now.Ticks;
SqlCommand _Cmd = new SqlCommand(/*my_sp*/, _SQLConnection);
_Cmd.CommandType = CommandType.StoredProcedure;
SqlParameter _Param = new SqlParameter("@param1", 0);
_Cmd.Parameters.Add(_Param);
for (int i = 100000; i <= 102000; i++)
{
_Cmd.Parameters["@param1"].Value = i;
SqlDataReader _Reader = _Cmd.ExecuteReader();
while (_Reader.Read())
{
_Stored[i] = _Reader["StartWork"].ToString();
}
_Reader.Close();
}
_EndStored = DateTime.Now.Ticks;
_StoredTime = TimeSpan.FromTicks(_EndStored - _StartStored);
Console.WriteLine("Total execution time: " + _StoredTime.ToString());
Run Code Online (Sandbox Code Playgroud)
我想缩短那段代码,但是......不行 - D
TL; DR - 2000相同查询的存储过程只快4秒左右,这对我来说似乎相当低?
我使用存储过程错了吗?
我同意杰里米的观点.使用存储过程的一个更好的原因是避免在循环中调用数据库不可预测的次数.您应该将循环移动到存储过程本身并调用一次.因此,您的示例显示存储过程的使用率很低.有点像在拖拉机上驾驶拖拉机和法拉利,然后声称法拉利很慢.
| 归档时间: |
|
| 查看次数: |
630 次 |
| 最近记录: |