PDA

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



mehran6764
جمعه 22 مرداد 1400, 23:42 عصر
سلام

فرض کنید میخواییم نتایج کوئری از دیتابیس رو داخل گرید ، باکس یا هر کنترل دیگری نشان دهیم ..
حالا می تونیم اون نتایج رو داخل یک جیسون بریزیم و جیسون رو بصورت سطر و ستون بخونیم و ..
یا دیتاتیبل ... شاید راه بهتر دیگری هم باشه که من نمی دونم ..

سوالم اینکه : کدام یک از این روش ها بهینه تر هست ؟ به لحاظ مصرف در RAM ، پردازشگر و ...

barnamenevisjavan
شنبه 23 مرداد 1400, 09:49 صبح
سلام

فرض کنید میخواییم نتایج کوئری از دیتابیس رو داخل گرید ، باکس یا هر کنترل دیگری نشان دهیم ..
حالا می تونیم اون نتایج رو داخل یک جیسون بریزیم و جیسون رو بصورت سطر و ستون بخونیم و ..
یا دیتاتیبل ... شاید راه بهتر دیگری هم باشه که من نمی دونم ..

سوالم اینکه : کدام یک از این روش ها بهینه تر هست ؟ به لحاظ مصرف در RAM ، پردازشگر و ...
بستگی به حجم داده ها داره، کاربرد اصلی جیسون برای کار با API هست که سرور بتونه اطلاعات درخواستی رو در قالب فرمت استانداردی به کلاینت ارسال کنه
یا مثلا میتونه برای ذخیره تنظیمات برنامه، یا چند زبانگی برنامه ها ازش استفاده کرد.
شما اگر یکم حجم داده هاتون زیاد باشه بخواید جستجو کنید جیسون قابلیت ایندکس گذاری نداره، همه دیتا رو باید تو حافظه لود کنید.اگر حجم داده هاتون حدود 5 مگابایت یا نهایت 10 مگ باشه جیسون خوبه ولی بیشتر از اون دیگه بدرد نمیخوره باید از دیتابیس استفاده کنید

mehran6764
شنبه 23 مرداد 1400, 11:55 صبح
بستگی به حجم داده ها داره، کاربرد اصلی جیسون برای کار با API هست که سرور بتونه اطلاعات درخواستی رو در قالب فرمت استانداردی به کلاینت ارسال کنه
یا مثلا میتونه برای ذخیره تنظیمات برنامه، یا چند زبانگی برنامه ها ازش استفاده کرد.
شما اگر یکم حجم داده هاتون زیاد باشه بخواید جستجو کنید جیسون قابلیت ایندکس گذاری نداره، همه دیتا رو باید تو حافظه لود کنید.اگر حجم داده هاتون حدود 5 مگابایت یا نهایت 10 مگ باشه جیسون خوبه ولی بیشتر از اون دیگه بدرد نمیخوره باید از دیتابیس استفاده کنید

منظورتون از دیتابیس همون دیتاتیبل هست ؟

barnamenevisjavan
شنبه 23 مرداد 1400, 11:56 صبح
منظورتون از دیتابیس همون دیتاتیبل هست ؟
خیر منظورم از دیتابیس همون دیتابیسه

mehran6764
شنبه 23 مرداد 1400, 12:04 عصر
خیر منظورم از دیتابیس همون دیتابیسه

ممنون از شما

فکر کنم سوالم رو درست مطرح نکردم ، نتایج کوئری دیتابیس رو که مستقیما نمیشه داخل عناصر
فرم مثلا باکس ، گرید یا ... وارد کرد ( میشه ؟)

مگه ایجوری نیست اول نتیجه کوئری رو داخل مواردی مانند Datatbale و .. می ریزیم بعد از این طریق بهش
دسترسی داریم

barnamenevisjavan
شنبه 23 مرداد 1400, 13:58 عصر
ممنون از شما

فکر کنم سوالم رو درست مطرح نکردم ، نتایج کوئری دیتابیس رو که مستقیما نمیشه داخل عناصر
فرم مثلا باکس ، گرید یا ... وارد کرد ( میشه ؟)

مگه ایجوری نیست اول نتیجه کوئری رو داخل مواردی مانند Datatbale و .. می ریزیم بعد از این طریق بهش
دسترسی داریم
روش دیتاتیبل دیگه خیلی وقته قدیمی شده الان با linq و ef براحتی وصل میشه نیازی به دیتاتیبل نیست

mehran6764
شنبه 23 مرداد 1400, 14:19 عصر
روش دیتاتیبل دیگه خیلی وقته قدیمی شده الان با linq و ef براحتی وصل میشه نیازی به دیتاتیبل نیست

ما میخواییم پروژه هامون رو ویندوزهای خیلی قدیمی هم اجرا بشه ، اما مواردی که گفتین تا جایی که می دونم در دات نت 3.5 پشتیبانی نمیشن

ShayanFiroozi
دوشنبه 25 مرداد 1400, 21:17 عصر
سلام ،

این کاملا بستگی به پروژه شما داره ، حجم دیتا چقدره ؟ Read & Write از دیتابیس چقدر هست ؟

اگر میخواین از جیسون به عنوان یک دیتابیس بزرگ استفاده کنین به هیچ وجه توصیه نمیکنم ! جیسون ها و XML ها ساختار متنی ترتیبی دارند و در حجم بالای اطلاعات هم منابع رو میخورن هم بشدت کُند میشن ؛ طبیعی هم هست ، چون برای این کار ساخته نشدن.

SQLite :

مزایا :


مصرف پایین رَم و پَردازنده.
فوق العاده سبک و کم حجم.
سرعت Read و Write بسیار بالا ( در صورت تنظیمات صحیح ).
حجم فایل بسیار کم ( نسبت به حجم اطلاعات شما ).
بدون نیاز به نصب.

معایب :

مبتنی بر فایل (File Base).
احتمال آسیب پذیری فایل دیتابیس در صورت هنگ کردن ، خاموش شده ناگهانی سیستم و غیره (در نسخه های جدید قابلیت هایی برای جلوگیری از این موضوع طراحی شده).
تقریبا غیر قابل Share.
براحتی امکان اتصال چند کاربر وجود ندارد.

mehran6764
سه شنبه 26 مرداد 1400, 10:28 صبح
ضمن تشکر از توضیحات شما اما منظورم استفاده از جیسون به عنوان دیتابیس نبود ، تو پست اول هم عرض کرذم : مثلا میخواییم لیست دانش آموزان رو از جدول SQl server لود کنیم
سپس در دیتاگرید نمایش دهیم ، حالا یه سری راههای هست مثلا با ef که متاسفانه تو نسخه های قدیم ساپورت نمیشه ، دیتاتیبل ، Datareader ... یا اینکه آبجکتی از نوع جیسون
بسازیم

سوالم این بود کدوم روش بهینه تر هست ؟

ShayanFiroozi
چهارشنبه 27 مرداد 1400, 12:14 عصر
سلام مجدد ؛

بستگی داره لیست دانش آموزان شامل چه فیلد ها و چه نوع داده ای باشه.

اما معمولا از لیست ها استفاده میشه ، چیزی که با اطمینان میتونم بگم اینه که JOSN برای این کار گزینه آخره.