View Full Version : می شه روی همچین View ای olap رو پیاده سازی کرد؟
samiraamiri
جمعه 24 فروردین 1386, 22:15 عصر
سلام دوستان
من یه view دارم که از تعداد زیادی Table و view درست شده و حدود 4 میلیون رکورد بر می گردونه آیا استفاده از Olap می تونه زمان گزارشی که قرار از این view گرفته بشه رو کاهش بده ؟ اصلا" می شه روی همچین View ای olap رو پیاده سازی کرد؟
DonetKarvb
جمعه 24 فروردین 1386, 23:05 عصر
سلام دوستان
من یه view دارم که از تعداد زیادی Table و view درست شده و حدود 4 میلیون رکورد بر می گردونه آیا استفاده از Olap می تونه زمان گزارشی که قرار از این view گرفته بشه رو کاهش بده ؟ اصلا" می شه روی همچین View ای olap رو پیاده سازی کرد؟
راستش من منظورتون رو ازOlap در اینجا نفهمیدم ولی اگر شما هدفتون کاهش سرعت زمان اجرای کوئری است راه های زیادی وجود داره که کار آمد ترن آونها ایندکس است. همچنین partitioning میتونه کمک خوبی بکنه. درضمن سخت افزار های خوب رو هم فراموش نکن.
AminSobati
شنبه 25 فروردین 1386, 10:56 صبح
وقتی شما یک Select بدون شرط از این View میزنین، روی زمانی که برای تهیه گزارش صرف میشه نباید قضاوت کنین. آیا همیشه کاربرها بدون Where از این View اطلاعات میخوان؟ معمولا اینطور نیست. بلکه شرطهایی روی این View اعمال میشه. لذا در این حالت شما میتونین با بهینه کردن Queryها و ایندکسها به نتایج بسیار خوبی برسید. همچنین روشهایی که در پست قبلی اشاره شد میتونه مد نظر قرار بگیره.
OLAP وظیفه اش کاهش زمان Query نیست!
samiraamiri
شنبه 25 فروردین 1386, 23:30 عصر
این view همیشه به همین صورت هست من از یه برنامه آماده برای گزارشگیری استفاده می کنم به همین خاطر این Query تا زمانی که به برنامه داده نشده filter نمی شه تمام راههای کاهش زمان اجرا یQuery رو هم پیاده سازی کردم حالا می خوام بدونم Olap به من کمک می کنه برای تسریع در گزارشگیری یا نه؟
DonetKarvb
شنبه 25 فروردین 1386, 23:44 عصر
این view همیشه به همین صورت هست من از یه برنامه آماده برای گزارشگیری استفاده می کنم به همین خاطر این Query تا زمانی که به برنامه داده نشده filter نمی شه تمام راههای کاهش زمان اجرا یQuery رو هم پیاده سازی کردم حالا می خوام بدونم Olap به من کمک می کنه برای تسریع در گزارشگیری یا نه؟
همانطور که آقای ثباتی فرموند Olap برای تسریع انجام کوئری ها نیست. در مجموع Olap یک سیستمی است که جهت آرشیو کردن دادهها و گزارش گیری انجام میشود. در این سیستم ها خیلی اوقات دیتابیس را Denormalize میکنند تا از تعداد join ها در ان حجم بالای داده ها کم کننند.
یه سوال : آیا مطمئنید که هیچ راهی وجود ندارد که قبل از اینکه داده ها به سمت کلاینت برود فیلتر شود؟
اگر در خود SQL Server داده ها را فیلتر کنید سرعت شما خیلی بالاتر از فیلتر کردن داده ها در سمت کلاینت خواهد بود. همچنین کمتر ترافیک شبکه رو اشغال میکنید.
samiraamiri
یک شنبه 26 فروردین 1386, 00:09 صبح
این گزارشگیری Dynamic هست و کاربر بر اساس تاریخ اون رو filter می کنه. بعد لیست field ها نمایش داده می شه و بعد از انتخاب fieldهاست که filter کلی انجام می شه.
DonetKarvb
یک شنبه 26 فروردین 1386, 00:15 صبح
این گزارشگیری Dynamic هست و کاربر بر اساس تاریخ اون رو filter می کنه. بعد لیست field ها نمایش داده می شه و بعد از انتخاب fieldهاست که filter کلی انجام می شه.
توجه داشته باشید که یه فیلتر اولیه برای تاریخ چند درصد از رکورد ها رو میتونه کنار بذاره.؟؟ آیا در همون اول امکان نداره که از کاربر تاریخ رو بگیرید و بعد داده ها رو از سمت سرور (SQL Server ) به سمت کلاینت بفرستید؟
البته من قصد فضولی ندارم و فقط دوست دارم شما به نتیجه دلخواهتان برسید اما به نظر من بخش دومش هم میتونه تو SQL Server صورت بگیره.:چشمک:
DonetKarvb
سه شنبه 28 فروردین 1386, 00:38 صبح
مشکلتون حل شد؟
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.