View Full Version : سوال: مدیریت select ها متفاوت از یک صفحه به دیتابیس
RezaNrzdh
شنبه 26 مرداد 1392, 17:06 عصر
سلام و خسته نباشید خدمت اساتید بزرگوار.
والا من یه صفحه دارم که توش میخوام از چندین جدول اطلاعات بگیرم...اما چون اصلا جدول ها ارتباطی به هم ندارن نمیتونم از Union یا از select تودرتو استفاده کنم.
و از Stored Procedure هم استفاده میکنم. میخواستم بدونم من بیام همه select ها رو در یک SP قرار بدم؟ یا برای هر select بیام Sp جداگونه بنویسم؟..کدوم منظقی تر هست و بهتر عمل میکنه؟بیشتر مد نظرم فشار روی سرور هست...راه دیگه ای هم اگه هست ممنون میشم توضیح بدید.
Reza_Yarahmadi
یک شنبه 27 مرداد 1392, 08:07 صبح
والا من یه صفحه دارم که توش میخوام از چندین جدول اطلاعات بگیرم...اما چون اصلا جدول ها ارتباطی به هم ندارن نمیتونم از Union یا از select تودرتو استفاده کنم.
و از Stored Procedure هم استفاده میکنم. میخواستم بدونم من بیام همه select ها رو در یک SP قرار بدم؟ یا برای هر select بیام Sp جداگونه بنویسم؟..کدوم منظقی تر هست و بهتر عمل میکنه؟بیشتر مد نظرم فشار روی سرور هست...راه دیگه ای هم اگه هست ممنون میشم توضیح بدید.
میخواید همه اطلاعات کنار هم باشند (فرضا توی یک گرید نمایش بدید) یا اینکه هر کدوم با ابزار جداگانه ای نمایش داده میشه؟
درصورتیکه مورد اول باشه میتونید از Apply Cross با کمک گرفتن از Row_Number استفاده کنید (هرچند نمایش اطلاعات چند جدول که با هم ارتباط ندارند کنار هم خیلی غیر منطقیه)
در صورتی هم که مورد دوم باشه میتونید Selectها رو توی یک SP هم بیارید و زمان Fill کردن اطلاعات هر جدول رو فرضا توی یک DataTable بریزید ولی بهتر اینه که هر Select توی یک SP مجزا باشه. در مورد فشار هم به خیلی عوامل بستگی داره - حجم اطلاعات جداول - ایندکس ها - تعداد مراجعات به هر جدول - مشخصات سرور - ...
RezaNrzdh
یک شنبه 27 مرداد 1392, 19:43 عصر
ممنون داداش.
والا مورد دوم هستش و رکورد های جدول ها به همدیگه مربوط نمیشن...اما همه ی این Select ها باید توی یه صفحه ریخته بشه.
راهی که فرمودید برای یک SP به نظر منطقی میاد.
حالا سوالم اینه که الان اگه بخوام تموم select ها رو توی یک sp بنویسم مقدار فشار روی سرور با چند sp جداگانه فرق میکنه؟کمه یا زیادتر؟ (فرض کنید حجم اطلاعات و تعداد مراجعات و حتی مشخصات سرور یه چیز مطلوب باشه)
خودم بر اساس استدلالم فکر میکنم چون هر SP عملا یه connect و dc شدن به sql هست فشارش بیشتره تا اینکه بخوایم فقط یک بار به sql وصل بشیم.
ممنون میشم توضیح بدید.
باتشکر
Reza_Yarahmadi
دوشنبه 28 مرداد 1392, 07:36 صبح
لزوما هر SP یه Connection جداگانه نیاز نداره و در حالت عادی SQL Server کانکشن ها را به همین راحتی حذف نمیکنه. ولی به هر حال یک واکشی و اجرای دستور داره که چندان قابل توجه نیست.
اگه بستر ارتباطی با سرو شبکه داخلیه ؛ به نظرم اگه دستورات در قالب یک SP اجرا بشه بهتره ، نه بخاطر بار کاری سرور ، بخاطر پر کردن Data Object سمت برنامه (فرضا در Net. به یکباره یک DataSet ایجاد و پر میشه)
اوبالیت به بو
دوشنبه 28 مرداد 1392, 12:59 عصر
ممنون داداش.
والا مورد دوم هستش و رکورد های جدول ها به همدیگه مربوط نمیشن...اما همه ی این Select ها باید توی یه صفحه ریخته بشه.
راهی که فرمودید برای یک SP به نظر منطقی میاد.
حالا سوالم اینه که الان اگه بخوام تموم select ها رو توی یک sp بنویسم مقدار فشار روی سرور با چند sp جداگانه فرق میکنه؟کمه یا زیادتر؟ (فرض کنید حجم اطلاعات و تعداد مراجعات و حتی مشخصات سرور یه چیز مطلوب باشه)
خودم بر اساس استدلالم فکر میکنم چون هر SP عملا یه connect و dc شدن به sql هست فشارش بیشتره تا اینکه بخوایم فقط یک بار به sql وصل بشیم.
ممنون میشم توضیح بدید.
باتشکر
به نظر من هم همه رو در یک SP بریزید و بعد اجرا کنید. مطمئن باشید مشکلی پیش نمیاد و به نظر من خیلی بهینه تر است.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.