نمایش نتایج 1 تا 5 از 5

نام تاپیک: تفاوت فیلترکردن Query با نوشتن Query مجدد

  1. #1

    تفاوت فیلترکردن Query با نوشتن Query مجدد

    سلام خدمت همه اساتید
    من در فرمی که DBGrid قرار گرفته یک Edit گذاشتم که کاربر با وارد کردن هر حرف اطلاعات اون DBGrid بر اساس یک فیلد خاص فیلتر میشه. و برای اینکار هم از خاصیت فیلتر Query استفاده کردم ولی این سوال برای من پیش اومده که اگه قرار باشه با یک بانک SQL Server در محیط شبکه و با تعدا رکورد زیاد اینکار انجام بشه اصولا استفاده از فیلتر سریع تر جواب میده یا اینکه برای هر کاراکتر وارد شده یک Query اجرا بشه؟
    از دوستانی که در این زمینه تجربه دارند خواهش میکنم راهنمایی کنند.

  2. #2
    من قبلا برای onchange یک edit هر بار query را باز نویسی کردم. خوب هم جواب میده.

  3. #3
    نقل قول نوشته شده توسط mehdi_mohamadi مشاهده تاپیک
    من قبلا برای onchange یک edit هر بار query را باز نویسی کردم. خوب هم جواب میده.
    ممنون از پاسخ شما دوست عزیز در جواب دادن هر دو روش شکی نیست ولی خیلی دوست دارم بدونم که چه دلیلی داشتید که از فیلتر استفاده نکردید و Query رو بازنویسی میکردید؟
    سوال: عملیات فیلتر کردن اطلاعات Query روی کلاینت انجام میشه یا مثل یک Query برای سرور ارسال میشه؟ ( اگه مورد اول درست باشه پس سرعت فیلتر کردن خیلی بیشتر از نوشتن Query مجدد هستش و اگه مورد دوم درست باشه فکر میکنم Query سرعت بیشتر داره. )
    بقیه دوستان هم اگه نظری دارند خواهش میکنم کمک کنند این بحث به نتیجه برسه.

  4. #4
    کاربر دائمی آواتار MNosouhi
    تاریخ عضویت
    مرداد 1384
    محل زندگی
    اصفهان
    پست
    883
    اینکه فیلتر بهتره یا کوئری بستگی به نوع برنامه شما داره و نمیشه دقیقا گفت کدوم بهتره ،برنامه نویس خودش باید تصمیم بگیره که کجا از چی استفاده کنه . روال کار به این صورته که شما وقتی از فیلتر استفاده می کنی همه اطلاعات از پایگاه داده دریافت شده و سپس عملیات فیلترینگ روی داده ها صورت می گیره ، در کوئری عملیات فیلترینگ داده ها توسط پایگاه داده انجام شده و نتیجه کوئری رو به عنوان جواب بر می گردونه .
    پیشنهاد : اگر برنامه شما تحت شبکه نیست : خیلی مهم نیست که از کدوم استفاده کنی ، اگر چه باز هم پیشنهاد میشه که از کوئری استفاده کنید تا اگر در آینده تصمیم به تحت شبکه کردن برنامه بگیرید مشکل زیادی نداشته باشید. در مواقعی که سرعت مهم است ، بهتره که از فیلتر استفاده کنی ( البته اینکه فیلتر سرعت بالاتری داره یه تجربه شخصیه )
    اگر برنامه شما تحت شبکه است : سعی کن از فیلتر استفاده نکنی ، چون ترافیک شبکه رو بالا میبره و وقتی حجم اطلاعات بالا بره کم شدن سرعت برنامت مشهود میشه.

  5. #5
    نقل قول نوشته شده توسط MNosouhi مشاهده تاپیک
    اینکه فیلتر بهتره یا کوئری بستگی به نوع برنامه شما داره و نمیشه دقیقا گفت کدوم بهتره ،برنامه نویس خودش باید تصمیم بگیره که کجا از چی استفاده کنه . روال کار به این صورته که شما وقتی از فیلتر استفاده می کنی همه اطلاعات از پایگاه داده دریافت شده و سپس عملیات فیلترینگ روی داده ها صورت می گیره ، در کوئری عملیات فیلترینگ داده ها توسط پایگاه داده انجام شده و نتیجه کوئری رو به عنوان جواب بر می گردونه .
    پیشنهاد : اگر برنامه شما تحت شبکه نیست : خیلی مهم نیست که از کدوم استفاده کنی ، اگر چه باز هم پیشنهاد میشه که از کوئری استفاده کنید تا اگر در آینده تصمیم به تحت شبکه کردن برنامه بگیرید مشکل زیادی نداشته باشید. در مواقعی که سرعت مهم است ، بهتره که از فیلتر استفاده کنی ( البته اینکه فیلتر سرعت بالاتری داره یه تجربه شخصیه )
    اگر برنامه شما تحت شبکه است : سعی کن از فیلتر استفاده نکنی ، چون ترافیک شبکه رو بالا میبره و وقتی حجم اطلاعات بالا بره کم شدن سرعت برنامت مشهود میشه.
    از پاسخ کامل و خوب شما بی نهایت ممنونم.
    از اونجایی که من تقریبا تازه کار هستم فکر میکنم اگه کمی بیشتر در مورد کاری که می خوام انجام بدم توضیح بدم شاید شما بتونید منو بیشتر راهنمایی کنید.
    این پروژه ای که دارم تحت شبکه هستش و به همین خاطر سرعت برام خیلی مهمه. من 4 سطح کاربری دارم که اطلاعات DBGrid روی هر فرم با توجه به نوع کاربر به 4 شکل مختلف توسط ADOQuery ایجاد میشند و در هر DBGrid چند Table مختلف با هم inner join میشند. بنابراین 4 Query مختلف در هر فرم دارم که با توجه به کاربری که لاگین کرده یکی از اونها اجرا میشه. حالا میخوام کاربر سیستم بر روی اطلاعاتی که مربوط به خودش هست اجازه فیلتر کردن بر اساس یک ستون خاص رو داشته باشه. به عنوان مثال بر روی فیلد نام با وارد کردن هر حرف رکوردهایی که نام آنها شامل اون حرف هست نمایش داده بشه و اگه هیچ کاراکتری وارد نشد همون اطلاعات اصلی نمایش داده بشند.
    خوب حالا با این توضیحات به نظر شما برای اینکه این امکان رو کاربر داشته باشه باز هم باید از Query استفاده کنم که در اینصورت 4 تا Query باید نوشته بشه با شرط هایی که در ابتدا برای هر کاربر تعریف شده بعلاوه شرط های جدیدی که فیلتر کردن اطلاعات لازم است یا بهتر است از Filter خود Query استفاده کنم؟

تاپیک های مشابه

  1. مشکل گرفتن query با حرف 'ی' ؟
    نوشته شده توسط sasan_vm در بخش SQL Server
    پاسخ: 15
    آخرین پست: پنج شنبه 30 فروردین 1386, 13:18 عصر
  2. the query must be an updateable query
    نوشته شده توسط hamed_bostan در بخش VB.NET
    پاسخ: 2
    آخرین پست: چهارشنبه 08 فروردین 1386, 16:02 عصر
  3. مشکل در ثبت اطلاعات در query
    نوشته شده توسط maisam57 در بخش برنامه نویسی در Delphi
    پاسخ: 4
    آخرین پست: دوشنبه 03 مهر 1385, 09:17 صبح
  4. درخواست یک query
    نوشته شده توسط golagha_program در بخش Access
    پاسخ: 3
    آخرین پست: پنج شنبه 30 شهریور 1385, 12:20 عصر
  5. Query
    نوشته شده توسط حمیدرضاصادقیان در بخش برنامه نویسی در Delphi
    پاسخ: 3
    آخرین پست: پنج شنبه 30 شهریور 1385, 03:09 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •