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

مسعود طاهری

مسعود طاهری

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

21 Comments

  1. فرشید علی اکبری

    سلام 

    جناب طاهری عزیز واقعاً دستتون درد نکنه با این تکنیک هایی که در مبحث DBA ارائه میدهید، خیلی وقت بود دنبال این موضوع بودم ولی بخاطر کمبود وقت فرصت نمیشد که پیگیری و مطالعه در این زمینه رو شروع کنم بنابراین از سمت Application خودم و با استفاده از Async-await دات نت در موارد مورد لزوم اقدام میکردم ولی چندان دلچسبم نبود و مطمئناً با استفاده از این امکان در SqlServer  مزایای خیلی بیشتری رو  نسبت به روش قبلی که بکار می بردم، می توان بدست آورد. 
    درهر صورت ابتدا در مورد تدریس این مباحث و تکنینکها از شما کمال تشکر را  دارم و مشتاقانه منتظر ادامه مبحث Sql Server Service Broker با بیان شیوا و رسای شما هستم.
    شاد و پاینده باشید.
    پاسخ دادن
  2. مرجان آب بر

     ممنون از شما بسیار مفید بود. 

    پاسخ دادن
  3. امین ثریا

     از جناب طاهری درخواست میکنم هر چ زودتر نحوه کاربردی استفاده از service broken رو آموزش بدن. متشکرم

    پاسخ دادن
  4. امین ثریا

     من دنبالش رفتم ، مطابق فرمایشاتون باید چند تا چیز روبا کوئری تو sql پیکر بندی  کرد تا صف و پیام و قرارداد ایجاد بشه . حتی نحوه فرستان به وسیله درخواست کننده و پاسخ دهنده  به وسیله activator internalهم توضیح داده بودن اما….

    اصلا چیزی ب نام نحوه استفاده ازش رو قرار نداده بودن یعنی من چطور وقتی تو صف پیام قرار دادم چند تا SP دیگه خودشون به صورت داینامیک باقی کارها رو انجام بدن ؟

    همین باعث شد به جای این روش سراغ برنامه نویسی ناهمزمان معماری mvc یعنی async, await برم و با اون کارام رو انجام بدم. باور بفرمایید انقدر سطح و درکش برام دشوار بود ک برای اولین بار از sql ناامید شدم . نمیدونم الان این روش چقدر خوبه اما اگه جناب مسعود طاهری آموزشی کاربردی ازش ارائه ندن ، فک نکنم دیگه سراغش برم.

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

      مسعود طاهری

       سلام

      قبول دارم پیکریبندی اون کم سخت و… است
      اما یک قابلیتی است که اگر به اون مسلط باشید می توانید خیلی خوب ازش استفاده کنید.
      منتظر آموزش در این زمنیه باشدی یکی از جلسات دوره SQL Server ویژه برنامه نویسان به این موضوع اختصاص دارد
      موفق باشید
      پاسخ دادن
  5. امین ثریا

    ممنون ک پاسخ من رو دادید، بیصبرانه منتظر این آموزش میمونم.

    پاسخ دادن
  6. مهدی شبانی

    مهدی شبانی

    مفید بود  حتما دوره SQL Server ویژه برنامه نویسان رو تهیه میکنم اما یه خورده قیمت بالاست

    پاسخ دادن
  7. ایمان قنوعی

    ایمان قنوعی

     سلام. بنظر بنده یکی از شیرینی های کار با بانک اطلاعاتی SQL Server همین قابلیته . من با استفاده از این قابلیت حدود ۱ سال و نیم پیش یه برنامه واسه یه شرکتی نوشتم . که در صورت تغییر در اطلاعات به واحدهای خاصی تو همون شرکت پیام بروزرسانی اطلاعات صادر میشد و سیستم ها خودشون رو خودکار بروز می کردند . با توجه به این که مدرک تحصیلی من کارشناسی عمران بود و این که بنده تجربی کار کرده ام تو زمینه برنامه نویسی ، طبیعتا درک درستی از مباحث ندارم ولی تونستم با چند روز کارکردن و با استفاده از یک مثال کاربردی توی پروژه خودم راه اندازیش کنم . اون زمان با Sql2005 این قابلیت اضافه شده بود و فکر کنم از مباحث Query Notification بود .

    ممنون
    پاسخ دادن
  8. مسعود بی مر

        با سلام

    چگونه می توان وقتی یک message در queue سرویس بروکر وارد شد یک برنامه یا سرویس را فراخوانی کرد؟
    در واقع تریگر شدن برنامه هنگام وارد کردن یک پیام در صف اتفاق بیفتد؟
    با تشکر از آموزش خوبتون
    پاسخ دادن
  9. مسعود طاهری

    مسعود طاهری

    سلام احساس می کنم یا من سوال شما را درست متوجه نشدم و یا سوال شما واضح نمی باشد

    در واقع تریگر شدن برنامه هنگام وارد کردن یک پیام در صف اتفاق بیفتد؟
    اگر می خواهید وقتی مسیچ در صف قرار گرفت کاری انجام دهید. کافی است در APP خودتون بعد درج مسیج کار خودتون را انجام دهید. اگر با SP یک مسیچ در Queue قرار می دهید و می خواهید فراخوانی برنامه خارجی داخل SP انجام شود می توانید از CLR استفاده کنید (البته به هیچ عنوان این موضوع را توصیه نمی کنم)
    ما معمولا یک مسیج را در Queue قرار می دهیم و وقتی می خواهیم آن را بخوانیم و کار خودمان را انجام دهیم برای Queue اصطلاحا یک  Activation ایجاد می کنیم که می تواند Internal و External باشد 

        

    هر دو این موضوع در درس جلسه ۱۵ دوره SQL Server ویژه برنامه نویسان بررسی شده است
    پاسخ دادن
  10. میلاد فیروزی

    میلاد فیروزی

       یک سوال
    Service Broker تا چه اندازه می تواند به Live بودن نزدیک شود؟
    ما یک Transaction خیلی بزرگ داریم که توش قیمت یک آیتم که تغییر می کنه یا یک آیتم که ناموجود می شه می ره توی XML چند جدول مرتبط با این آیتم تغییرات رو اعمال می کنه ، حالا این Transaction گاهی اوقات خیلی غول میشه
    مثلا یک آیتم داریم که هدیه ی ۳۰۰ آیتم دیگه شده ، حالا این Transaction باید بیاد اول این آیتم رو از لیست هدیه های اون ۳۰۰ آیتم حذف کنه و توی XML اونا تغییر ایجاد کنه بعد خود این آیتم رو ناموجود کنه ، گاها این اتفاق باعث LOCK خیلی زیاد میشه ،
    با توجه به این که فرایند ناموجود شدن و تغییر قیمت باید LIVE اتفاق بیوفته می تونیم سمت Service Broker بریم با قبول ۳ الی ۴ ثانیه تاخیر؟؟؟؟

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

      مسعود طاهری

      سلام

      همانطور که شما هم اطلاع دارید یکی از اهداف SSSB پیاده سازی Deferred Processing است. سناریو شما در این حالت قابل انجام است.
      البته باید دقیق تر تحلیل و… بشه 
      پیشنهاد من پیاده سازی تستی این حالت با یک مثال ساده است و اگر به قابلیت ها و مفاهیم آن تسلط پیدا کردید می توانید کار خودتون را جلو ببرید.
      ما این قابلیت را در یک سازمان بزرگ دولتی که مشکل Deadlock فراوان داشت با توجه به اینکه امکان تغییر سورس را نداشتیم از این قابلیت در سمت SQL Server استفاده کردیم Deadlock کاهش پیدا کرد و… 
      برای حذف نهایی Deadlock با کلی بررسی متوجه شدیم که بخشی از کد باید روش اش عوض می شد که متاسفانه تولید نسخه جدید مقدور نبود و…
      در مورد Lock هم باید این رو در نظر داشته باشید که همچنان این حالت در SSSB به ازای جداول شما وجود داره اما اوضاع بهتر است در صورتیکه درست و حساب شده از آن استفاده کنید.
      ما در جلسه ۱۵ دوره SQL Server ویژه برنامه نویسان این موارد را بررسی کردیم چندین مثال هم پیاده سازی کردیم بحث Lock و… هم به نوعی در آن بررسی شده بود
      موفق باشید
      پاسخ دادن
  11. مسعود بی مر

    همون مثال ارسال اس ام اسی که در وویس فرمودین، در صورتی که بخوایم با وارد شدن یک پیام جدید اپلیکیشن ارسال اس ام اس فراخوانی شود چه باید کرد

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

      مسعود طاهری

          سلام

      این مورد در جلسه آخر SQL Server ویژه برنامه نویسان به طور کامل بررسی شده + پیاده سازی مثال با استفاده از External Activation
      پاسخ دادن
  12. مسعود بی مر

    با سلام

    پیام های موجود در صف سرویس بروکر محدودیت سایز دارند؟ چقدره سایز هر پیام؟
    پاسخ دادن
    1. مسعود طاهری

      مسعود طاهری

          سلام حداکثر اندازه Message در Queue می تواند ۲GB باشد. البته توجه داشته باشید که درج داده در چنین حجمی می تواند باعث بوجود آمدن مشکل Queue Fragmentation شود برای Rebuild و… می توانید در اینترنت سرچ کنید 

      در ضمن در نسخه ۲۰۱۶ امکانی وجود دارد که بتوانید Queueهای مربوط به Service Broker را Rebuild کنید.
      توجه داشته باشید که Queue در پشت سر قضیه عملا یک جدول است
      پاسخ دادن
  13. نسرین اکبری

        ممنون بابت آموزش خوب و مفیدتون.

    پاسخ دادن
  14. حسین شالی

    با عرض ادب و خسته نباشید
    اقای طاهری پادکست های گروه شما واقعا عادی و خیلی مفید هستند
    اگه ممکنه نمونه های ساده و عملی هم ارائه بدید خیلی عالی تر میشه
    با تشکر

    پاسخ دادن
  15. محمد

    سپاس بیکران،عشقت پایدار

    پاسخ دادن

ارسال نظر

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

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