جلسه پنجم دوره SQL Server ویژه برنامه نویسان با موفقیت برگزار گردید، در این جلسه مسعود طاهری مدرس و مشاور SQL Server در مورد نکات ذیل صحبت کرد که مختصری از این نکات برای شما دوستان عزیز شرح داده میشود.
جلسه پنجم شامل چه مباحثی است:
1- آشنایی با مباحث اولیه کوئری نویسی (اعمال شرط، مرتبسازی و…)
2- آشنایی با نحوه استفاده از توابع در کوئریها
3- معرفی انواع Join های پایه (Cross Join, Inner Join)
4- بررسی Execution Plan به ازای دستورات معرفی شده
5- معرفی Client Statistics در SQL Server
چرا از * (Star) در Select نباید استفاده کنیم؟
فرض کنید شما دو جدول به نامهای Tb1 , Tb2 دارید، حال با استفاده از یک دستور ساده Join می خواهید این دو جدول را با همدیگر ترکیب کنید، اگر از دستور زیر استفاده کنید، یک اشتباه بزرگ را مرتکب خواهید شد.
[sql]
SELECT * FROM Tb1
INNER JOIN Tb2
ON Tb1.CustomerID = Tb2.CustomerID;
[/sql]
حال دستور بالا چه بلایی سر شما خواهد آورد:
1- * یعنی همه اطلاعات، وقتی این اتفاق میافتد IO بسیار زیادی روی سرور تحمیل می گردد که کوئری شما را کٌند خواهد کرد.
2- مهمترین مسئله این است که در زمان استفاده از ستاره (*) SQL Server از خیر تمامی ایندکسهای هر دو جدول میگذرد و از ایندکسهای شما استفاده نخواهد کرد.
بی مقدمه
متاسفانه خیلی از برنامههای ایرانی از یک منطق بسیار بد دارند استفاده میکنند. منطق این است: از Engine SQL Server برای انجام محاسبات یا کنترل قوانین سازمان استفاده میکنند. این منطق در آینده مشکلات بسیار بزرگی را با خود به همراه خواهد داشت.
یک مثال واقعی شماره 1:
در یک پروژه بیمارستانی ممکن است هر پزشک دارای یک تیپ قرارداد خاصی باشد، برای مثال پزشک X با ازای 10 ویزیت اول 50 درصد و به ازای 10 ویزیت دوم به بعد 55 درصد، حق ویزیت از بیمارستان دریافت میکند، همچنین در شیفت شب این حق ویزیت به 60 درصد هم میرسد.
حال این برای پزشک X بود، سایر پزشکان نیز دارای قراردادهای خاص خودشان هستند.
برنامه نویسان برای محاسبه حقوق و دستمزد پزشکان یک قابلیت جالب در برنامه پیاده سازی کرده بودند: با استفاده از دستورات T-SQL را داخل برنامه فرمول هایی را برای پزشکان ایجاد میکردند و از آنها استفاده میکردند.
این یعنی یک اشتباه بزرگ؛ این یعنی استفاده از Engine SQL Server برای محاسبات ریاضی.
دانلود برخی از جلسات دوره SQL Server ویژه برنامه نویسان – سطح 1
[wpfilebase tag=file id=153 /]
یک مثال واقعی شماره 2:
یک مثال دیگر هم برای کنترل قوانین زده شده که در جلسه 5 آن را کاملا موشکافی کردیم.
انواع Case Expression
1- Simple Case Expression
در این نوع Case عبارت شما با یک یا چند مقدار بررسی شده و در صورت برابری با هر کدام از مقادیر ارزش مربوط آن برگردانده خواهد شد.
[sql]
CASE Expression
WHEN Expression1 THEN Result1
WHEN Expression2 THEN Result2
ELSE ResultN
END
[/sql]
2- Searched Case Expression
در این نوع Case عبارت مورد نظر شما با یک یا چند عبارت از نوع Boolean بررسی میشود و در صورتیکه هر کدام از عبارتها True شود ارزش مربوط به آن برگردانده خواهد شد.
[sql]
CASE
WHEN Boolean_Expression1 THEN Result1
WHEN Boolean_Expression2 THEN Result2
ELSE ResultN
END
[/sql]
جهت استفاده از مباحث بالا می توانید بصورت غیرحضوری دوره SQL Server ویژه برنامه نویسان – سطح 1 را سفارش دهید.
منبع: آموزش برنامه نویسی نیک آموز
3 دیدگاه
کمیل
بعد از عرض سلام و وقت بخیر
اگر امکانش باشد لایسنس نرم افزار مانیتورینگ idera.com رو میخواستم
متشکرم و موفق باشید
کمیل
بعد از سلام و تشکر
آیا امکان تهیه فیلم مربوط به کارگاه Performance & Tuning هفته قبل وجود دارد ؟
مجتبی شهریور
سلام
قیمت محصول زیاد نیست….