PDA

View Full Version : سوال: بهترین روش برای جداولی که در اس کیو ال سرور داده های زیادی دارند؟



mr.siahatgar
چهارشنبه 05 دی 1397, 08:45 صبح
سلام
من یه برنامه نوشتم که به بانک اطلاعاتی اس کیو ال سرور متصل میشه . بانک من دارای حدود 100 ستون هست و اطلاعاتم را از طریق فایل نوت پد وارد میکنم . برنامه من تا موقعی که حجم اطلاعاتم زیاد نبود خوب کار می کرد اما حالا که نزدیک به دو ملیون رکورد شده هنگام وارد کردن اطلاعات و یا خواندن اطلاعات یا مدت زمان زیادی طول میکشه و یا برنامه چیزی را نمایش نمیده
کسی میتونه راهنمایی کنه چکار باید انجام بدم ؟

Mahmoud Zaad
چهارشنبه 05 دی 1397, 09:19 صبح
با سلام
موقع ذخیره اطلاعات که نباید مشکل خاصی باشه.
در کل چند راه کار هست. اول اینکه آیا بانک درست طراحی شده و آیا همه 100 ستون باید در یک جدول باشند؟ یعنی اگه راهی وجود داره بعضی اطلاعات به جداول دیگه منتقل بشه و با کلید خارجی به هم مرتبط بشن.
دوم در زمان نمایش. کاربر قاعدتاً نیازی به دیدن همه 2 میلیون رکورد در هر بار گزارش گیری نداره. بنابراین میشه از روش هایی مثل صفحه بندی اطلاعات استفاده کرد و مثلا هر بار 100 رکورد و نهایتا 500 رکورد به کاربر نمایش داد. همچنین در گزارش ها نباید همه ی 100 فیلد با هم سلکت بشن و فقط فیلدهای مورد نیاز سلکت بشن.
در کل سعی کنید فقط اطلاعات مورد نیاز رو به کاربر نمایش بدید و اطلاعات اضافی از دیتابیس فراخوانی نشن. حالا خودتون هم دنبال روش هایی باشید که به این هدف برسید.

mr.siahatgar
چهارشنبه 05 دی 1397, 09:51 صبح
ممنون از شما . کاربر باید همزمان ۱۰۰ فیلد را ببینه اما نیازی به همه رکورد ها نداره و بخاطر همین من یک سلکت گذاشتم که نام شهر را انتخاب میکنه رکورد های ان شهر را میبینه اما نمیدانم چرا وقتی سلکت شهر را میزنه خیلی زمان میبره تا نتیجه نمایش داده شود .

Mahmoud Zaad
چهارشنبه 05 دی 1397, 10:03 صبح
تعداد جوین ها هم مهم هست.
اطلاعات رو در چه کنترلی نمایش میدید (دیتا گریدویو، لیست ویو و ...) و آیا کنترل رو احیانا از نظر گرافیکی شخصی سازی کردید یا نه؟
آیا از کنترل های آماده سایر شرکتها مثل dev و .. استفاده کردید؟
آیا محاسباتی روی دیتا در سمت برنامه انجام میدید یا نه؟
از چه تکنولوژی استفاده میکنید؟ ADO, Linq, ...

bahonar
پنج شنبه 06 دی 1397, 18:18 عصر
احتمالا با ایندکس گزاری روی فیلد شهر مشکل حل بشه

رامین مرادی
شنبه 08 دی 1397, 08:14 صبح
اگه فیلد شهر رو به صورت رشته ذخیره کردید. ابتدا یک جدول برای شهر هاتون درست کنید و بجای نام شهر آی دی اون شهر رو بزارید و موقع جستجو هم بجای نام شهر از کلیدش استفاده کنید.