PDA

View Full Version : کدام یک بهتر است: ایندکس ها را یکجا تعریف کنیم یا جدا ؟



Developer Programmer
سه شنبه 09 آذر 1389, 10:06 صبح
حتما دیدین که در هنگام تعریف ایندکس، SQL اجازه میده چندین Column رو انتخاب و ایندکس بگذارین.
ضمن اینکه می تونین، هر بار Add کرده و ایندکس جدید تعریف کنین
میخوام بدونم از لحظا کارایی و Performance کدوم یک بهتره، این که برای هر ستون، ایندکس جدید تعریف کنیم یا اینکه یکبار Add کرده و همه ایندکس ها رو یکجا تعریف کنیم؟


http://www.shiaupload.ir/images/47165968586344211722.gif

حمیدرضاصادقیان
سه شنبه 09 آذر 1389, 10:22 صبح
سلام.
اگر به صورت تکی تعریف کنید میتونید مشخص کنید بعضی ها unique هستند یا خیر، کلاستر هستند یا خیر. ولی وقتی گروهی باشه نمیتونید اینارو مشخص کنید.
ضمن اینکه خیلی دقت کنید در انتخاب ایندکسها.
چون الزاما اضافه کردن ایندکس ها سرعت کار شما رو افزایش نخواهند داد و ممکنه حتی به کار شما آسیب برسونه.
حتما Plan های Query هاتون رو دقیق بررسی کنید و بعد از اون اقدام به قرار دادن ایندکس کنید.
مثلا ایندکس ها در update ها سرعت رو کند میکنند زیرا باید بروز شوند. و موارد دیگه.

Developer Programmer
سه شنبه 09 آذر 1389, 12:31 عصر
ممکنه یه زحمتی بکشین و Execution Plan از یک دیتابیس دلخواه رو توضیح بدید؟
من اینجا چند تا جدول رو با هم Join کردم یکسری اعداد و ارقام میده و در آخر هزینه رو 100%اعلام کرده و من نمیدونم میخواد دست آخر، چی رو ثابت کنه.

حمیدرضاصادقیان
سه شنبه 09 آذر 1389, 12:44 عصر
سلام.
پیشنهاد میکنم این کتاب (http://www.amazon.com/Dissecting-Server-Execution-Plans-ebook/dp/B0018PCIFG) رو حتما مطالعه کنید.کاملا در این زمینه توضیح داده است.
حالا به جز این شما اون plan رو ذخیره کنید و فایل رو ضمیمه کنید تا در مورد اون توضیح بدم.

Developer Programmer
چهارشنبه 10 آذر 1389, 08:03 صبح
این هم اون چه فرموده بودین
http://www.shiaupload.ir/images/20873664943197758802.png

حمیدرضاصادقیان
چهارشنبه 10 آذر 1389, 08:14 صبح
سلام.
شما خود فایل رو Rar کرده attach کنید که من بتونم در sql باز کنم و دستورات و فیلدهای شما رو ببینم.