50٪ تخفیف روی تمام دوره‌ها!
پایان تخفیف تا:
مشاهده دوره‌ها
0

دلیل کند بودن order by در sql server

سلام

بنده وقتی کوئری میزنم توی کمتر از 1 ثانیه جواب میدهد ولی وقتی  دستور  order by  به تهش اضافه میکنم 15 یا 20 ثانیه و بیشتر طول میکشد تا جواب بدهد. البته وقتی طبق ستون هایی که ایندکس کردم order by   می زنم کمتر از یک ثانیه جواب میدهد.

بنده یک ستون id   دارم که auto increment است بنابراین از جنس عدد است  ایا ایندکس کردن برای همچین ستونی بی معنی نیست؟

مثلا منطقش این هست که که ایدی یک در ایدی یک ذخیره شده و ایدی دو در دو ذخیره شده و ...

اصلا آیا ایندکس کردن این ستون باعث افزایش سرعت می شود؟

 

پرسیده شده در 1399/05/06 توسط

3 پاسخ

1

بله 100 درصد .. ایندکس گذاشتن روی Datatype های عددی تاثیر قابل توجهی روی performance شما داره .  یه نکته دیکه اینکه اگه تقریبا 30 درصد داده ها توی جدول تغییر می کنه باید جداول و gather stat یا در اصطلاح analyze کنی (ایندکس ها رو هم جداگانه می تونی rebuild کنی) .. این هم می تونه performance تو خیلی بهتر کنه روی همه شرط ها .

پاسخ در 1399/05/07 توسط
0

سایزش 35 میلیون سطر و 19 ستون

primary key  نیست

پس نظر شما این است که ایندکس روی اعداد هم تاثیر دارد؟

 

بنده قبلا این جدول را بر اساس تاریخ پارتیشن بندی کرده بودم ولی وقتی شرایط دیگری به تاریخ اضافه می شد کوئری ها کند تر می شدند سرعت بدتر شده بود برای همین پارتیشن را حذف کردم

پاسخ در 1399/05/06 توسط
1

سلام دوست عزیز  ... ستون id شما اگه primary key باشه خود پایگاه داده یک primary key index براتون می سازه و اگر نباشه شما برای بالا بردن سرعت کوئری خودتون می تونید ایندکس و روی ستون ای دی بسازید . سایز جدول تون هم می تونید بگید چقدر هست ؟

پاسخ در 1399/05/06 توسط

پاسخ شما