PDA

View Full Version : تفاوت بین sqlexpress و local



computer_engineer25
چهارشنبه 26 خرداد 1389, 16:57 عصر
سلام دوستان عزیز
تفاوت بین sqlexpress با local در چیست لطفا اگه کسی می دونه کامل توضیح بده ممنون

sia_2007
پنج شنبه 27 خرداد 1389, 11:27 صبح
فرقشون در مفهوم دیتابیسهای Client/Server و Desktop هست.
این هم بحث گسترده ایه.
در ضمن Compact ؛ Engine نداره.

cardano7
پنج شنبه 27 خرداد 1389, 23:26 عصر
در ضمن Compact ؛ Engine نداره.
وقتی Engine نداشته باشه یعنی اون وقت چی میشه؟

sia_2007
جمعه 28 خرداد 1389, 00:50 صبح
ببین وقتی Engine نداشته باشه؛ یعنی هر کاری که کنی یه فایله.
فرض کن دو تا فایل تو سرور Share شده.
یک SQL Compact File و یه SQL Enterprise فایل.
وقتی به SQL Compact وصل میشی در اصل به یه فایل وصل میشی
وقتی به SQL Enterprise وصل میشی در اصل به یه Engine وصل میشی
حالا فرض کن تو هر کدوم 500 تا فاکتور ضبط کردی.
حال به جفتشون میگی که فاکتورهای امروز رو بدین.
مسلما تو کوئری تون شرط Where گذاشتین.
حال در Engine دار؛ Engine کوئری شما رو میگیره؛ بعد اعتبار اون رو میسنجه که مشکل Syntax نداشته باشه؛ شما مجوز داشته باشین و ... و تازه بعد Execution Plan میسازه و تصمیم میگیره که چه راهی رو برای اجرای کوئری در نظر بگیره؛ که سریعتر و کم هزینه تر نتیجه رو بگیره.
تموم این کارها رو Engine بر عهده داره.
---
وقتی کوئری شما به Compact میرسه؛ خب اون که Engine نداره؛ که این کارها رو انجام بده.
خودش هم که فایل اجرایی نیست.
پس در نتیجه کل فایل اول میآد روی شبکه و به سیستم شما منتقل میشه !!!!
بعدش تو سیستم شما؛ میآین کوئریتون رو میزنین و بقیه ماجرا.
حالا فرض کنین قرار باشه این فایل روی خط مودم منتقل بشه.
---
خیلی هم طبیعیه؛ فرض کن شما میگی رکوردهای امروز رو ؛ فیلد آرشیوشون رو تغییر بده؛
خب اون از کجا بدونه که شما منظورتون چیه.
باز کل فایل روی خط شبکه میآد تو سیستم شما؛ و بعد تغییرات اعمال میشه.
خب دو تا بحث دیگه هم پیش میآد؛ علاوه بر کارآیی بسیار پایین؛ به این نکات هم توجه کن که همه ی دیتا داره میره برای طرف؛ در حالی که ممکنه اون طرف فقط حق دیدن فاکتورها رو داشته باشه؛ چرا باید محتویات کل فایل که اطلاعات حیاتی هم توش هست براش ارسال بشه ؟
Engine ای نیست که بگه کی کوئری رو فرستاده؛ و چه حقی داره.
اگه Password نبود که اوضاع از این هم بدتر بود؛ هر کسی میتونست وصل بشه و هر چی دلش خواست کوئری بگیره.
تازه فرض کن شما آرشیو بودن فاکتورهای امروز رو انجام دادین
در حین ذخیره سازی دیتا در فایل اصلی برق میره.
چه کار میخواین بکنین ؟
نه Engine ای هست؛ نه Log File ای و نه هیچ چیز دیگه ای.
در کل بحث گستردست؛ امیدوارم یه دید خوب پیدا کرده باشی.
این رو بدون که تو برنامه های Single User ؛ هیچ انتخابی به خوبی Compact و Access نیست.
اما تو Client/Server ؛ باید به Engine فکر کنی.
حالا Engine خوب رو یا با SQL Server داری و یا mySql و یا postGre ؛ به هر حال همیشه بین اینها در حال انتخابیم.

cardano7
جمعه 28 خرداد 1389, 09:47 صبح
جواب های شما همیشه شیرینه!
من به جز #C تو هیچ زمینه یی سعی نکردم تخصص پیدا کنم. ولی یه مدت هست که فکر می کنم یادگیری پایگاه های داده ارزشش رو داره. به نظر میرسه کار با دیتابیس ها ساده هم باشه. حداقل از #C ساده تر به نظر می رسه(البته نمی خوام ارزشش رو پایین بیارم. این رو یک مزیت می دونم).

به نظر شما چه کتاب لاتین خوبی در زمینه ی پایگاه داده هست که بتونه کمکم کنه؟

من خودم تا چند وقت پیش فقط SQL CE (و یک ذره هم Access) استفاده می کردم. حالا نمی دونم به سمت چه نرم افزارهایی برم؟ MySQL و بقیه ی نرم افزارها جایگاهشون کجاست؟ خیلی ها مقایسه زیاد کردند ولی نمی تونم به حرف هر کسی اعتماد کنم.