درباره نویسنده

مسعود طاهری

مسعود طاهری

عاشق علیرضا (پسرم) و همسرم. در ضمن SQL Server را هم دوست دارم.

16 دیدگاه

  1. داوود طاهرخانی

     ممنون مهندس

    خیلی خیلی جامع و روشن بود
    پاسخ
  2. علی یگانه مقدم

    علی یگانه مقدم

    ممنون آموزش خوبی بود و خیلی ساده بیانش کرده بودید و کاربرد عملی زیادی هم داره

    پاسخ
  3. عاطفه حسن پور

    عاطفه حسن پور

     ممنون جناب طاهری اموزش خوبی بود

    پاسخ
  4. سعید شکری

    سعید شکری

     سلام
    این مبحث isolation level خیلی مبحث جالبیه و میتونه تا حدودی جلوی deadlock رو بگیره
    اگر ما یه جدول خیلی پرکاربرد داشته باشیم و isolation level رو روی حالت uncommited بزاریم مشکلی پیش میاد؟
    اگر  phantom read اتفاق بیفته مشکلی داره؟

    پاسخ
    1. مسعود طاهری

      مسعود طاهری

      بله استفاده مناسب از Isolation Level می تواند جلوی Deadlock را بگیرد. در ضمن یادتون باشه از Isolation Level نوع Uncommitted استفاده کنید تمامی مشکلات همزمانی را خواهید داشت.

      فیلم مسابقه و جواب آن را نگاه کنید. در کوئری مربوط به آن از With (NoLock) استفاده کرده ایم عملکرد آن دقیقا مثل Isolation Level نوع Uncommitted می باشد. 
      بهترین حالت برای پروژه ها 
      1- ReadCommitted
      2-SnapShot (با توجه به اینکه از TempDB زیاد استفاده می شود. بهتر است که تنظیمات اصولی برای TempDB انجام شود.)
      به زودی یک دوره 4 جلسه ای در زمینه افزایش سرعت کوئری ها برگزار خواهیم کرد. در این دوره این موارد را به خوبی بررسی خواهیم کرد.
      پاسخ
  5. MEHDI

    MEHDI

      سلام
    ضمن تشکر از مقاله خوبتون.مقاله ای هم در باب نرمال سازی داده ها در sql ارائه کنید

    پاسخ
  6. پیام

       سلام مهندس
    واقعا ممنون
    من چند روزه دارم دنبال این مطالب میگردم
    هیچ جا این جو راحت و صریح توضیح ندادن
    واقعا مرسی

    پاسخ
  7. حسن ضرابی

    حسن ضرابی

       با سلام و خسته نباشید

    مطالب خیلی خوب توضیح داده شده بود

    از بابت این آموزش بسیار بسیار مفید خیلی مچکرم

    پاسخ
  8. علی

    خیلی عالی بود منون از شما

    پاسخ
  9. علی

    سلام مطالب سایتتون رو دیدم. فوق العاده س توی سایتای فارسی. واقعا تبریک میگم که همچین سایت تخصصی و موفقی دارید.
    و یک سوال هم از خدمتتون دارم :
    دو تا جدول داریم مثلا فاکتور و ریزخرید(اینطور فرض کنید چون توضیح جداول اصلی خیلی زمان بره). با صدور فاکتور، به تعداد مشخص و با آیدی های متوالی، ریزخرید توی جدول خودش ایجاد میشه. میخوایم طوری باشه که این توالی حفظ بشه! فاکتور حاوی “تعداد، ابتدا و انتها” واسه ریزخریدهاش هست. واسه همین باید این توالی حفظ بشه.
    سوالی که از خدمتتون دارم اینه که چطور باید اینکار رو کرد؟ بیشتر دغدغه م روی همزمانی درخواستها به دیتابیس هست.(موقع اینزرت و البته احتمالا حذف. البته ریزخریدها ثابت هستن و حذف و اضافه شدنشون تابع خود فاکتور هست! یعنی تقریبا میشه گفت ثابت هستن به ازای یک فاکتور)
    از اونجایی که تخصص روی SQL ندارم، روش ابتدایی که به ذهنم رسیده بود، یک جدول اضافی با یک فیلد بیتی برای لاک کردن!!! بود که امیدوارم زیاد نخندید بهش! 🙂
    پیشاپیش متشکر از راهنماییتون…

    پاسخ
    1. فرید طاهری

      فرید طاهری

      با سلام و تشکر از نظر شما.

      برای طراحی جدول فاکتور شما باید به روش زیر اقدام کنید:
      1. یک جدول به عنوان Master باید داشته باشید که اطلاعات (ID مشتری، ID فاکتور، تاریخ فاکتور، مبلغ کل فاکتور، شماره فاکتور) داشته باشد.
      2. یک جدول به عنوان Detail باید داشته باشید که اطلاعات ( ID , Detail ID فاکتور، ID کالا، تعداد کالا، مبلغ کالا، مبلغ کل هر سطر (تعداد * مبلغ کالا)) را داشته باشید.

      کلید اصلی در جدول Master عبارت است از ID فاکتور و کلید خارجی در جدول Detail عبارت است از ID فاکتور

      سعی کنید از TVP استفاده کنید تا مشکلات همزمانی و Lock را نداشته باشید.

      موفق باشید.

      پاسخ
  10. محمدحسین فخرآوری

    درود
    عالی

    پاسخ
  11. احسان

    سلام از مهندس گرامی ودوستان خواهش دارم سوال بنده جواب بدهند.
    فرض مثال
    بنده یک جدول درخواست شفارش دارم که باید افراد مختلف تایید کنند
    اطلاعات جدول شامل
    1-ادی جدول
    2-ادی ثبت کننده
    3الی 8-سایر مشخصات
    9-ادی تایید کننده اول
    10ادی تایید کننده دوم
    بنده می خواهم از جدول یوزر ادی ها تایید کننده ها را داشته باشم
    موضوع این که مشکل در relatioدارم که نمی شود از یک جدول شفارش به جدول یوزر هم برای درخواست کننده وهم برای تایید کنندهها ارتباط برقرار کنم البته بنده دوست ندارم از جداول میانی استفاده کنم
    دوستان ممنون میشم کمک کنند

    پاسخ
    1. جواد اسماعیلی

      جواد اسماعیلی

      سلام نیک آموزی عزیز
      باتوجه به طراحی شما ناچار هستید که دوتا Relation با جدول یوزرهاتون برقرا کنید.
      حال روال و شرایط موجود در سفارش رو باید در کد برنامه پیاده سازی کنید

      پاسخ
  12. احسان

    البته دوستان بخاطر اشتباهی تاپی عذرخواهی می کنم
    ای دی

    پاسخ
    1. جواد اسماعیلی

      جواد اسماعیلی

      داشتن همراهانی مثل شما برای ما افتخاره

      پاسخ

ارسال یک نظر

نشانی ایمیل شما منتشر نخواهد شد.

تمامی حقوق مادی و معنوی این وب سایت متعلق به نیک آموز می باشد.
این سایت توسط تیم آموزش برنامه نویسی نیک آموز مدیریت می شود.

ثبت نام دوره آموزشی SQL Server ویژه برنامه نویسان به صورت اقساطی
ثبت نام در دوره
close-image