PDA

View Full Version : مقاله: آزمایش سرعت بین SQL SERVER و ACCESS



mc_laren
یک شنبه 21 مهر 1387, 15:18 عصر
به نام خدا
با سلام خدمت دوستان
با اجازه دوستان شخصا مقایسه بین این دو پایگاه داده انجام داده بودم که به شرح زیر می باشد:
قبل از مطالعه نتایج به نکات زیر توجه داشته باشید:
1. نسخه ACCESS ، 2003 میباشد و SQL SERVER ، Enterprise 2000
2. نسخه VB.NET هم 2005
3. برای نمایش داده ها از DataGridView استفاده شده .
4. عمل های انجام شده توسط OledbCommand و SqlCommand انجام شده است.
5. زمان ها بر حسب میلی ثانیه می باشد.
• عمل اضافه کردن چهل هزار رکورد (شامل دو فیلد متنی و دو فیلد عددی)
SQL SERVER : 41،124
ACCESS : 140،918

• عمل خواندن چهل هزار رکورد (شامل دو فیلد متنی و دو فیلد عددی)
SQL SERVER : 13،701
ACCESS : 38،669
• عمل ویرایش چهل هزار رکورد (شامل دو فیلد متنی و دو فیلد عددی)
SQL SERVER : 1،082
ACCESS : 2،467
• عمل حذف کردن چهل هزار رکورد (شامل دو فیلد متنی و دو فیلد عددی)
SQL SERVER : 777
ACCESS : 258
موفق باشید

reza6384
یک شنبه 21 مهر 1387, 17:25 عصر
جالب بود.
فقط کاشکی یه نفر می گفت که چرا در مقایسه آخری Access سریعتر بوده.

در ضمن، من یه پیشنهاد دارم دوست عزیز. ممکنه با افزایش تعداد رکوردها این زمان ها به صورت خطی رشد نکنه. اگر می خواهید کاملترش کنید می تونید با چند تعداد دیگه هم اینکار رو انجام بدین و نتایج رو ثبت کنید.

mc_laren
دوشنبه 22 مهر 1387, 13:09 عصر
با سلام
ضمن تکشر از توجه شما
من چند بار دیگر هم این آزمایش رو تکرار کردم ( البته فقط برای عمل اضافه کردن و حذف کردن)
و باز هم همین نسبت اختلاف وجود داشت و در تست اضافه کردن اس کیو ال نسبت به اکسس
3.4 سریعتر بود و باز هم اکسس چند برابر در عمل حذف کردن از اس کیو ال سریعتر بود .
تعداد رکوردها در این آزمایش برابر هزار، ده هزار ، بیست هزار، سی هزار و چهل هزار بود.
با تشکر

reza6384
دوشنبه 22 مهر 1387, 16:03 عصر
بسیار خوب.
کاش یه نفر هم میگقت که چرا و کلا دلیل این قضایا برای ما روشن می شد.

Evil 69
دوشنبه 22 مهر 1387, 16:38 عصر
اين كار ها به خاطر اين هست كه الگوريتم هاي btree در اين دو بانك با هم فرق دارن و چون اين الگوريتم ها در sql بهتر هستند سرعت جست و جو در sql بيشتر است و از طرفي براي حذف تمام ركورد ها نياز به جست و جو و ژردازش هاي از اين صورت به شكل زياد نياز نيست و چون در sql اين الگوريتم ها پردازش بيشتري نسبت به عمليات io دارند ( انفجار cpu در انها بيشتر از انفجار io است ) پس در زمان حذف acces سريع تر به io مي رسد و كار را انجام مي دهد ولي به همين صورت اگر بخاهيم يك عمليات مثل فيلتر كردن انجام دهيم چون انفجار io در acces بيشتر است بنابر اين تعداد مقايسه ها نيز بيشتر مي شود ولي در sql به دليل اين كه انفجار cpu بيشتر است بنابراين تعداد مقايسه ها نيز كمتر مي شود .
البته اين تمام اون چيزي نيست كه باعث بوجود امدن اين اختلافات مي شود اين تمام اون چيزي هستش كه من مي دونستم در اين باره

mc_laren
چهارشنبه 14 مهر 1389, 00:34 صبح
با سلام
تازه این رو پیدا کردم و فکر کنم با دستور زیر زمان حذف کردن sql از Access هم کمتر شود.
دستور Truncate

ali_najari
چهارشنبه 14 مهر 1389, 13:56 عصر
دوست عزيز من اكسس رو امتحان كردم و با توجه به اينكه پورت 60 ثانيه بازه براي خواندن اطلاعات
اكسس 42200 ركرود رو ميخونه ولي تا حالا SQLرو امتحان نكردم