PDA

View Full Version : واکشی فیلدهای جداول اصلی و محوری و ارتباط آن با سرعت



Galawij
یک شنبه 25 اردیبهشت 1390, 09:54 صبح
سلام.
می دونیم که واکشی فیلدهای زیاد در کاهش سرعت لود فرم ها(وب سایت) تأثیر دارد.
ما تو برنامه مون جداول اصلی داریم که تعداد فیلدهاش می تونه به 30، 40 تا برسه. حالا می خوام براشون View یا storeprocedure بنویسم به منظور پر کردن grid ها.
به نظر شما از اونجایی که برای گزارشات برنامه همه فیلدها باید نشان داده بشه اگر یک View یا روال کلی بنویسم که برای دو منظور استفاده شود(هم نمایش در گریدها و هم به منظور گزارشات) چه تأثیری روی سرعت برنامه داره ؟؟؟

البته رکوردهای جداول مختلف صفحه بندی شده اند.

یوسف زالی
سه شنبه 27 اردیبهشت 1390, 09:04 صبح
سلام.
طبق تجربه ام Viev کنید و یک SP بنویسید برا صدا کردن دو SP که یکی برا گزارشه یکی برا کار دیگه.
یعنی SP اصلی فقط شامل if باشه که بفهمه کدوم SP رو میخواهیم. بره اون رو EXEC کنه.
البته این تجربی هست(3 سال).

Galawij
سه شنبه 27 اردیبهشت 1390, 09:33 صبح
نمی خوام از شرط استفاده کنم خودش سرعت رو پائین میاره، بعدش این چه کاریه هم view درست کنم هم SP؟

یوسف زالی
سه شنبه 27 اردیبهشت 1390, 10:17 صبح
اگر فقط یک table هست view نمی خواد اما اگه join میشه view چند برابر سرعت رو بهبود میده.
اگر نتیجه و تعداد فیلدهای هردو مورد یکی هست که یعنی کلا یک SP.
اما اگه نتیجه و تعداد فیلدها فرق داره تو اون دو جایی که می خواهید؛ دو تا SP درست کن.
If خودش ذاتا کاری به سرعت نداره. Select هایی که توش هست خیلی کندش می کنه.
اگه قرار شد دو تا Sp کنی با یه SP دیگه که If داره اونارو Exec کن.
Exec هم اگه تو شرط باشه کاری به سرعت نداره. اما اگه تو شرط Select باشه کند می شه.

Galawij
سه شنبه 27 اردیبهشت 1390, 10:26 صبح
تا اونجایی که من اطلاع دارم Sp سرعتش از view بیشتره؟ این طور نیست؟؟؟

یوسف زالی
سه شنبه 27 اردیبهشت 1390, 10:45 صبح
من این حرف رو قبول ندارم.
SP به دلیل اینکه متغیر می گیره و select خالص نیست کند تره.
اما View چون کامپایل میشه و Cache میشه سریعتره.
امتحان کردم و نتیجه گرفتم.
حالا خودت می تونی تست کنی.