PDA

View Full Version : پردازش روی تک تک رکوردهای جدول ...



mahdi5121
چهارشنبه 29 تیر 1390, 22:31 عصر
با سلام ....

فرض کنید که یه تکست باکس داریم که تو اون ، کاربر اسم رو می نویسه و برنامه، توی بانک چک می کنه و اگه اون رکورد رو پیدا کرد نشون می ده .

حالا اومدیم کاربر اسم رو اشتباه نوشت مثلا" به جای سعید نوشت شعید .
می خوام برنامه طوری باشه که اسم های مشابه رو هم نشون بده مثلا" نوشتیم رضا، علیرضا رو هم نشون بده ، نوشتیم شعید، سعید رو نشون بده .

سوال من اینه، درسته که بیام رکورد به رکورد چک کنیم که آیا اون اسم توی تکست باکس، مشابه ایی توی بانک داره یا نه؛ اگه تعداد کاربرا بالا بره، سرعت سرج پایین نمی یاد .

راه حل شما برای یه سری پردازش از این نوع ( که ممکنه این پردازش ، کدشاش هم زیاد باشه) روی رکورد ها چیه ؟

استفاده از DataReader چطوره ؟

خیلی ممنون ...

Reza_Yarahmadi
چهارشنبه 29 تیر 1390, 23:16 عصر
اول از همه شما باید الگوریتمی طراحی کنید تا دو کلمه رو با هم چک کنه و ببینه شبیه هم هستند یا نه (که این خودش یه مشکل بزرگ برای این منظور است).
برای استفاده از DataReader باید کل اطلاعات دیتابیس رو بخونید و سمت برنامه الگوریتم طراحی شده رو پیاده سازی کنید ، که این برای برنامه هایی که تحت وب و یا تحت شبکه هستند یه نقص به حساب میاد چون اطلاعات بیخودی زیادی خونده بشه. اگر هم سمت دیتابیس پیاده سازی کنید بستگی به الگوریتم و پیاده سازی اون ، میزان اطلاعات موجود در دیتابیس ، ترافیک سرور ، سخت افزار سرور و ... داره.
در کل سربار زیادی روی سرور داره و در صورتی که این کار جز نیازهای اصلی پروژه نیست پیشنهاد میشه خودتون رو درگیر این موضوع نکنید.

mahdi5121
چهارشنبه 29 تیر 1390, 23:26 عصر
مگه تو DataReader وقتی که پردازش روی یه رکورد انجام می شه ، فقط همون رکورد قفل نمی شه و همه می تونن با بقیه ی رکورد ها کار کنند .
این خوبی DataReader هست ، به نظر شما برای همچین پردازش هایی DataReader خوبه یا از اون بهتر هم هست ؟

Reza_Yarahmadi
پنج شنبه 30 تیر 1390, 12:55 عصر
مگه تو DataReader وقتی که پردازش روی یه رکورد انجام می شه ، فقط همون رکورد قفل نمی شه و همه می تونن با بقیه ی رکورد ها کار کنند .
این خوبی DataReader هست ، به نظر شما برای همچین پردازش هایی DataReader خوبه یا از اون بهتر هم هست ؟
توی مسئله شما بحث روی قفل شدن رکورد نیست ، در DataReader (در صورت تحت شبکه بودن) باید رکورد به کلاینت منتقل بشه تا اونجاپردازش لازم انجام بشه که این باعث میشه اطلاعات بی مصرف زیادی منتقل بشه. به نظر من اگه بتونید الگوریتم خودتون رو سمت دیتابیس پیاده سازی کنید هم پردازش سریعتری خواهید داشت هم اطلاعات به اندازه مورد نیاز منتقل میشه.