View Full Version : کدی که نوشتم سرعت کمی داره
Mahdi_S_T
شنبه 03 آذر 1386, 21:11 عصر
من کد زیر را نوشتم که برای حدود 4000 رکورد حدود 14 ثانیه وقت می گیره آیا میتوان به جای این کد بهتری نوشت :
'select * From personel WHERE (Ozv_no BETWEEN (1)and(9999))and(Ozv_no Not IN (SELECT Ozv_no FROM Bon_sodoor WHERE Ozv_no BETWEEN (1)and(9999))) ORDER BY Ozv_no'
Cave_Man
شنبه 03 آذر 1386, 23:04 عصر
از ایندکس هم استفاده کردی؟
SYNDROME
یک شنبه 04 آذر 1386, 08:00 صبح
آیا سیستم شما سرعت خوبی دارد؟(از لحاظ سخت افزاری)
شرطها را به تنهایی اجرا کن ببین چقدر زمان می گیرد.
موفق باشید
حمیدرضاصادقیان
یک شنبه 04 آذر 1386, 13:30 عصر
شما ببین روی فیلد ozv_no ایندکس داری؟بعد اگر تمامی فیلدهای جدول personel رو نیاز نداری ، فقط اونهایی رو بیار که نیاز داری.در ضمن به جای between هم از علائم <> استفاده کن.(این مطلب رو درسایت sql-performane خونده بودم.)
SYNDROME
یک شنبه 04 آذر 1386, 16:00 عصر
در ضمن به جای between هم از علائم <> استفاده کن.
با احترام
فکر نمی کنید برای چک کردن یک بازه بهتر است از همان Between استفاده شود؟
موفق باشید
حمیدرضاصادقیان
دوشنبه 05 آذر 1386, 21:04 عصر
چرا .منظور من از علائم <> این بود که به شکل زیر بنویسه
where ozv_id>1 and ozv_id<9999
در ضمن در tip های موجود در سایت Sql-performance که درمورد دستورات select و شرطها نوشته بود این نکته رو هم ذکر کرده بود.که سرعت این علائم از between بالاتر است.
AminSobati
دوشنبه 05 آذر 1386, 22:15 عصر
دوست عزیزم،
دستور SET STATISTICS PROFILE ON رو اجرا کنین و بعد Query رو. حالا Plan بدست اومده رو اینجا پست کنین
Cave_Man
سه شنبه 06 آذر 1386, 01:07 صبح
دوست عزیزم،
دستور SET STATISTICS PROFILE ON رو اجرا کنین و بعد Query رو. حالا Plan بدست اومده رو اینجا پست کنین
میشه در مورد اینکه این کار چه چیزی رو نشون میده صحبت کنید؟
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.