PDA

View Full Version : مقایسه linq و ado



mohsen_1687
شنبه 27 اردیبهشت 1393, 00:30 صبح
با سلام خدمت همه دوستان و اساتید گرامی
من میخوام به پروژه انجام بدم که حجم دیتابیس زیادی داره یعنی کار با میلیون رکورد هست خودم دلم میخواد از LINQ استفاده کنم ولی همه میگن این روش هزینه زمانی زیادی داره یعنی اول باید تبدیل به دستور SQL بشه بعد تو SQL اجرا بشه ، ولی در مقابل SP ها در درون SQL SERVER کش میشن و سرعت اجرای بیشتری دارن ؛ میخوام بدونم ایا صحت داره یانه
دوستان و اساتید ممنون میشم اگر راهنمایم کنید و موضوع رو برام روشن کنید

parvizwpf
شنبه 27 اردیبهشت 1393, 02:28 صبح
صحت داره. ولی بهتون نگفتن هزینه های نگهداریش بعدا دیوانه کنندس . هزینه تغییرات بعدی در برنامه بالاست. کیفیت اجرای و ساختار برنامه کنترل نشده تر هست. شما چقدر میتونی کل کاراتون رو با sp مدیریت کنید مگه. پس مجبورید سراغ یک orm خوب برید. پیشنهاد میکنم اگه پروژه حجمش بالاست حتما ار LINQ استفاده کنید.

mohsen_1687
یک شنبه 28 اردیبهشت 1393, 00:20 صبح
من یه تست گرفتم از سرعت اجرا شدن و خواستم مقایسه کنم این دو رو ، نتیجه خیلی جالب و دور از تصورم بود
به این عکس دقت کنید119157
به ترتیب از بالا به پایین اولین سلکت با linq زده شده دومی یه کوری سلکت با سی شارپه(همون کوری معمولی خودمون) سومی هم sp هست
linq از پردازنه زیادی استفاده کرد ولی مدت زمان کمتری داشت و اون دوتا به عکس به نظرتون چرا اینطوری شده ؟؟؟

mohsen_1687
پنج شنبه 01 خرداد 1393, 16:09 عصر
دوستان کسی راجعبه این نظری نداره ؟؟؟

parvizwpf
پنج شنبه 01 خرداد 1393, 16:40 عصر
دوست عزیز شما هر چه کور تر core کد بزنید سرعت بالاتر است. مشخصه که ad.net کاملا سرعت خوبی حواهد داشت همچنین sp. چون تبدیلی این وسط وجود نداره و مستقیم سمت دی بی اجرا میشه. اما یه سوال فردا اگه پروژه بزرگتری خواستید بنویسید چه میکنید؟ آیا ado گزینه خوبیه؟ شما باید به ازای هر رفت و برگشت و انواع بازیابی هی کد sql بنویسید. نگهداری سخت تر میشه سرعت پیاده سازی پایین میاد شما با استفاده از linq ef میتونید آبجکتیو و تمیز دستورات دیتابیس رو هدایت کنید هم sp ها رو و هم دیتایی که تو برنامه خواهید داشت زیبا تر استفاده کنید.... روی تین دو وقت بزارید ببینید چطور میتونید سرعت رو بالا ببرید.