PDA

View Full Version : سرعت این گزارش چقدر فرق میکنه



reza_optical
چهارشنبه 12 مهر 1385, 23:39 عصر
با سلام
من برای ایجاد گزارش اول در sql یه view درست میکنم بعد ریپورتم رو در کریستال به view هه ربط میدم چون گزارشاتم پارامتری هست و این پارا مترهارو هم از کاربر میگیرم از vb به فورمولا مقدار میفرستم و در قسمت edit section formula و در record فورمولاهای خودم رو با فیلدها مقایسه و فیلتر میکنم خودم میدونم که سرعت رو پایین میبره ولی راه حلی دارین لطف کنید ممنون میشم

reza_rad
یک شنبه 16 مهر 1385, 09:08 صبح
در کل سعی کنید از view استفاده نکنید...
از خود جدول بهتره

tayebeh
یک شنبه 16 مهر 1385, 10:54 صبح
http://barnamenevis.org/forum/showthread.php?t=15114&page=3

Neda_Bagheri
پنج شنبه 17 اسفند 1385, 11:29 صبح
با سلام
من برای ایجاد گزارش اول در sql یه view درست میکنم بعد ریپورتم رو در کریستال به view هه ربط میدم چون گزارشاتم پارامتری هست و این پارا مترهارو هم از کاربر میگیرم از vb به فورمولا مقدار میفرستم و در قسمت edit section formula و در record فورمولاهای خودم رو با فیلدها مقایسه و فیلتر میکنم خودم میدونم که سرعت رو پایین میبره ولی راه حلی دارین لطف کنید ممنون میشم
من هم دقیقا همین مشکل را دارم و لی از View هم استفاده نکردم . چطور می توانم سرعت کریستال را بالا ببرم ؟ بعضی اوقات یک صفحه خیلی دیر می آید و بعضی اوقات همان صفحه با سرعت خوب می آید چه کاری می توانم انجام دهم ؟

reza_rad
یک شنبه 20 اسفند 1385, 07:08 صبح
من هم دقیقا همین مشکل را دارم و لی از View هم استفاده نکردم . چطور می توانم سرعت کریستال را بالا ببرم ؟ بعضی اوقات یک صفحه خیلی دیر می آید و بعضی اوقات همان صفحه با سرعت خوب می آید چه کاری می توانم انجام دهم ؟



در کل در دیتابیس های Transactional که روابط و جداول نرمال شده هستند و برای استخراج اطلاعات شما نیاز به این داری که تعداد زیادی Join بین تعداد زیادی جدول بزنی، این مشکل وجود داره.
بهتره از ایندکس گذاری روی جداول و ... استفاده کنید تا سرعت جستجو در دیتابیس تون بیشتر بشه.
البته راههای دیگه ای مثل استفاده از یه دیتابیس OLAP هم هست که توی پروژه های معمولی کاربرد نداره. در واقع این نوع دیتابیس با استفاده از خواص DeNormalize کردن جداول به شما امکان زدن کوئری های سریع تر رو میده...

من فکر می کنم برای کار شما اگه نیاز به گزارشهای فراوانی در سطوح مدیریتی نداره استفاده از همون ایندکس ها و ... بهتر باشه.

sm
یک شنبه 12 فروردین 1386, 12:56 عصر
من برخلاف دوستان نظر دیگه ای دارم
طبق این ضرب المثل که میگه "کار را باید به کاردان سپرد" بهترین روش اینه که کارهای سنگین دیتابیسی رو به عهده خود دیتابیس گذاشت ... مطمئنا دیتابیس خیلی سرعتش بیشتر از کریستال هست که اختصاصی برای این کار ساخته نشده است
من امتحان کردم و بهتر هست که شما از Stored Procedure استفاده کنین چون خوبی که داره اینه که میتونین پارامتر هم به اون رد کنین و بدین وسیله جلوی استخراج داده های اضافی و انتقال اونا رو به کریستال می گیرین
یا اگر از برنامه این کار رو انجام میدین با استفاده از Dataset این کار رو انجام بدین... البته خودم هیچ وقت از این روش استفاده نمی کنم

موفق باشین

sh
یک شنبه 12 فروردین 1386, 15:09 عصر
دقیقا " حرف دوستمون درسته

سعی کنید تا حد امکان دیتا ها رو قبل از رسیدن به کریستال ریپورت به شکل دلخواه درون دیتاست قرار بدین