ایمان اختیاری
پنج شنبه 10 تیر 1389, 10:49 صبح
سلام
دیروز خواستم یه مطلب رو چک کنم.
خواستم ببینم سرعت linq + stored procedure آیا از سرعت linq به تنهایی برای درج اطلاعات بیشتره یا نه ...
کد زیر رو نوشتم برای درج ده هزار رکورد .. :
DateTime tt1;
DateTime tt2;
int i = 0;
textBox3.Text = DateTime.Now.ToString();
tt1 = DateTime.Now;
for ( i = 0;i<100000;i++)
{
using (DataClasses1DataContext dbase = new DataClasses1DataContext())
{
test t1 = new test()
{
id = i,
name = i.ToString()
};
dbase.tests.InsertOnSubmit(t1);
dbase.SubmitChanges();
};
}
textBox4.Text = DateTime.Now.ToString();
tt2 = DateTime.Now;
textBox5.Text = (tt2 - tt1).ToString();
کد بالا فقط با linq اطلاعات رو درج می کنه
DateTime tt1;
DateTime tt2;
DataClasses1DataContext dbase = new DataClasses1DataContext();
textBox1.Text = DateTime.Now.ToString();
tt1 = DateTime.Now;
for (int i = 0; i < 100000; i++)
{
var query = dbase.test3(i, i.ToString());
}
tt2 = DateTime.Now;
textBox2.Text = DateTime.Now.ToString();
textBox6.Text = (tt2 - tt1).ToString();
کد بالا هم linq+stored procedure
اینم کد
stored procedure
ALTER procedure test3
@t1 int,
@t2 nvarchar(3)
as
begin
INSERT INTO test
([id]
,[name])
VALUES
(@t1
,@t2)
end
http://barnamenevis.org/forum/attachment.php?attachmentid=52107&stc=1&d=1277966833
http://barnamenevis.org/forum/attachment.php?attachmentid=52108&stc=1&d=1277966833
عکس یک مربوط به 10000 رکورده و عکس دوم مربوط به 100000 رکورده
حالا سوالی که برام پیش اومده اینه که چرا تفاوت بین این دوتا بین 5 ثانیه نهایته .. قاعدتا وقتی از stored procedure استفاده می شه باید سریعتر جواب بگیریم ؟
توضیح اینکه توی عکسا عددهای سمت چپ بدون sp و عددهای سمت راست با sp
دیروز خواستم یه مطلب رو چک کنم.
خواستم ببینم سرعت linq + stored procedure آیا از سرعت linq به تنهایی برای درج اطلاعات بیشتره یا نه ...
کد زیر رو نوشتم برای درج ده هزار رکورد .. :
DateTime tt1;
DateTime tt2;
int i = 0;
textBox3.Text = DateTime.Now.ToString();
tt1 = DateTime.Now;
for ( i = 0;i<100000;i++)
{
using (DataClasses1DataContext dbase = new DataClasses1DataContext())
{
test t1 = new test()
{
id = i,
name = i.ToString()
};
dbase.tests.InsertOnSubmit(t1);
dbase.SubmitChanges();
};
}
textBox4.Text = DateTime.Now.ToString();
tt2 = DateTime.Now;
textBox5.Text = (tt2 - tt1).ToString();
کد بالا فقط با linq اطلاعات رو درج می کنه
DateTime tt1;
DateTime tt2;
DataClasses1DataContext dbase = new DataClasses1DataContext();
textBox1.Text = DateTime.Now.ToString();
tt1 = DateTime.Now;
for (int i = 0; i < 100000; i++)
{
var query = dbase.test3(i, i.ToString());
}
tt2 = DateTime.Now;
textBox2.Text = DateTime.Now.ToString();
textBox6.Text = (tt2 - tt1).ToString();
کد بالا هم linq+stored procedure
اینم کد
stored procedure
ALTER procedure test3
@t1 int,
@t2 nvarchar(3)
as
begin
INSERT INTO test
([id]
,[name])
VALUES
(@t1
,@t2)
end
http://barnamenevis.org/forum/attachment.php?attachmentid=52107&stc=1&d=1277966833
http://barnamenevis.org/forum/attachment.php?attachmentid=52108&stc=1&d=1277966833
عکس یک مربوط به 10000 رکورده و عکس دوم مربوط به 100000 رکورده
حالا سوالی که برام پیش اومده اینه که چرا تفاوت بین این دوتا بین 5 ثانیه نهایته .. قاعدتا وقتی از stored procedure استفاده می شه باید سریعتر جواب بگیریم ؟
توضیح اینکه توی عکسا عددهای سمت چپ بدون sp و عددهای سمت راست با sp