نقل قول: کدام جستجو بهتره ؟
به نظر بنده روش دوم بهتره چون تو برنامه های تحت شبکه بار ترافیکی میاد پایین.
البته من مبتدی هستم و تجربه آنچنانی ندارم.
نقل قول: کدام جستجو بهتره ؟
نقل قول:
نوشته شده توسط
man_iran
من می خوام اطلاعات یک کاربر (نام کاربری و رمز عبور) را جستجو کنم کدام روش بهتره؟
- اطلاعات را از اس کیو ال بیاروم توی دیتاست بعد به وسیله یه حلقه فور جستجو کنم.
- مستقیما از طریق برنامه به اس کیو ال متصل بشم و با دستورات اس کیو ال جستجو کنم.
کدوماش بهتره ؟ اگر روش بهتری هم هست بگید.
ممنون
سلام دوست عزیز روش اول بهتره چون اگه بخوای لوگین و لوگات کنی دیگه لازم نیست به بانک سر بزنی.
چون اگه کاربر یوزر و کلمه عبور را اشتباه وارد کنه باید هی به بانک سر بزنی و اگه از روش اول بری دیگه نیازی نیست.
التماس دعا...
نقل قول: كدام جستجو بهتره ؟
جواب سوال شما به پارامترهای زیادی بستگی داره، مثلا جدول کاربران شما چند رکورد دارد؟ سرور sql لوکال است یا سرور جدا دارد و...
فرض کنید جدول شما 1000 رکورد داشته باشد، در صورت واکشی کل اطلاعات یک ترافیک اضافی روی شبکه گذاشته اید و حافظه برنامه را نیز کندتر کرده اید (فرض کنید برای یک وب سایت با همین تعداد کاربر بخواهید اینکار را بکنید. . .)
در صورتی که با پردازش این اطلاعات در sql پردازش ما بسیار کمتر خواهد شد
نقل قول: كدام جستجو بهتره ؟
البته روش اول سربار اضافه واسه سیستمی که برنامه روش اجرا میشه داره. یه محیطو که تعداد کاربر و حساب کاربری زیادی داشته باشه فضای زیادی از ram و الگوریتم جستجوش هم زمانگیر میشه. کاملا بستگی به محیطی که برنامه قرار توش اجرا بشه داره.
نقل قول: کدام جستجو بهتره ؟
بيشتر توضيح مي دم! :
بانك اطلاعاتي sql است و برنامه و بانك روي كلاينت هستند.
هر چه باشد روش اول بهتر به نظر مي رسد (البته ممكنه هم نباشه. در ادامه مي گم). روش اول بهتر به نظر مي رسد چونكه اطلاعات توي برنامه است و نياز نيست هي به بانك كانك كنيم و بقيه قضايا!.
ضمنا فرض كنيم تعداد ركورد هاي ما خيلي زياد باشد. باز هم به نظر مي رسد روش اول بهتر باشد.
ولي علتي كه من در بالا گفتم ممكنه روش دوم بهتر باشد نوع جستجو با استفاده از كئوري باشه! سوالي كه اينجا مطرح مي شه اصلا نوع جستجوي يه كئوري چطوريه ؟ شبيه يه حلقه فور عمل مي كنه ؟ يعني به صورت ترتيبي عمل مي كنه؟ يا روش خاصي داره؟
اگر شبيه حلقه فور باشه خب مسلم است روش اول در شريط برنامه اي كه گفتم بيشتر كاربرد داشته باشد.
حال نظر شما چيه ؟
نقل قول: كدام جستجو بهتره ؟
چند رکورد را می خواهید بازیابی کنید، یعنی در جستجو چند رکورد را می خواهد پیدا کنید؟
نقل قول: کدام جستجو بهتره ؟
شما هر دو حالت را فرض کنید :
- جستجو برای یه رکورد خاص
- جستجو برای چندین رکورد نامشخص
ضمنا اگر کسی نحوه جستجو کوئوری ها را می دونه لطف کنه بگه (ترتیبی هستند یا جوری دیگه؟)
نقل قول: كدام جستجو بهتره ؟
جستجو برای یک رکورد خاص که مطمئنا انجام query در sql توصیه می شود(مسلما برای یک رکود عاقلانه نیست کل Table را داخل برنامه بیاوریم) چه در حالتی که Sql روی سرور باشد یا Local باشد
منظورتون از چندین رکورد نامشخص رو نفهمیدم، لطفا بیشتر توضیح بدین
در مورد سوال آخر فکر کنم ترتیبی هستند ولی بر اساس Index گذاری شما، که باز هم به همین علت جستجو درQuery سریعتر از برنامه خواهد بود
نقل قول: كدام جستجو بهتره ؟
شک نکن که روش دوم هزار سرو گردن بالاتر از روش اول خواهد بود:لبخند:
نقل قول: کدام جستجو بهتره ؟
نقل قول:
نوشته شده توسط
razavi_university
منظورتون از چندین رکورد نامشخص رو نفهمیدم، لطفا بیشتر توضیح بدین
منظورم تعدادشونه. يعني مشخص نباشه چند ركورد بعد از جستجو برگردانده مي شه (فرض كه زياد باشه).
شما مي گيد روش كوئري بهتر است.خب مي شه اين كار را در ديتابيس انجام داد يعني همان طور كه كوئري جستجو مي كنه كاري كنيم كه در ديتابيس نيز به همين شكل جستجو كنيم. اينطوري سرعت بالا مي ره چون ديگه نيازي به كانكت نيست.
اما چطوري ؟
نقل قول: كدام جستجو بهتره ؟
دیتابیس برای جستجو در یک جدول از index ها کمک می گیرد (مگر در موارد خاص که کل جدول زا Scan می کند و یا ما بهش می گیم که سطر به سطر عملیات انجام دهد)
استفاده از index در سرعت عملیات های دیتابیس فوق العاده تاثیر دارد ولی در برنامه سمت Client همچین امکانی نداریم
پیشنهاد می کنم کتاب نکته های SQL Server 2000,2005 نوشته مهندس رضا رحمتی رو بخونین، نکات و پیشنهادات خیلی خوبی داره که در سایر کتابهای فارسی نمی تونین پیدا کنید
http://www.adinebook.com/images-1/im...jpg?1207238121