کانال تخصصی SQLSERVER – Telegram
کانال تخصصی SQLSERVER
878 subscribers
146 photos
6 videos
72 files
194 links
Download Telegram
📣 مجموعه آموزشی باورهای غلط در sql server:

✍️ در دومین قسمت از مجموعه آموزشی باورهای غلط در sql server، به بررسی نحوه ارزیابی عبارات منطقی(Logical phrases) می پردازیم. در زبان های برنامه نویسی ارزیابی عبارات منطقی از چپ به راست می باشد و نکته مهمی که در ارزیابی عبارات منطقی وجود دارد رخ دادن Short-Circuit Evaluation است. به عنوان مثال یک عبارات منطقی را در نظر بگیرید که از and شدن چند عبارات حاصل می شود، حال اگر نتیجه and دو عبارت ابتدایی برابر با false شود دیگر لزومی بر ارزیابی سایر عبارات نیست، زیرا می دانیم که در and اگر یک مقدار false باشد، کل نتیجه برابر با false خواهد بود(در مورد or نیز می توان مثال مشابهی ارائه کرد) که به این مورد Short-Circuit در ارزیابی عبارات منطقی گفته می شود...

📎از طریق آشنایی با نحوه ارزیابی عبارات منطقی و در نظر گرفتن آن در زمان طراحی کوئری های، از ایجاد خطا در زمان اجرا جلوگیری می کنیم.
http://codeeatsleep.ir/product/sql-server-misunderstanding-part-2
جهت مشاهده پاسخ این خودآزمایی به همراه مطالعه تکمیلی، به لینک زیر مراجعه کنید: http://codeeatsleep.ir/sql-server-self-assessment/operators/window-function-last-value
📣مباحث آموزشی آتی:

1️⃣ بررسی کارایی SP - Adhoc Query و Dynamic Query
2️⃣پاسخ به این سؤال که آیا SP به صورت pre-compiled ذخیره می شود
3️⃣مقایسه کارایی و کاربرد Function -SP و View در Sql Server
در کتاب زیر، 61 روش جهت طراحی(اسکریپت، جداول، ایندکس و ...) بهتر در sql server آموزش خواهید دید
#معرفی نرم افزار
در رابطه با اهمیت و کاربرد وسیع ایندکس در sql server بارها مطلب عنوان کرده ایم اما موضوع مهمی که ممکن است از آن غافل شویم، نگهداری از ایندکس می باشد.
یکی از موارد مهم در نگهداری از ایندکس ها توجه به میزان fragmentation است که تأثیر بسزایی در کاهش کارایی آن خواهد داشت. اگر چه برای کنترل و مدیریت Fragmentation اسکریپت و ابزار داخلی در sql server وجود دارد(که بخش هایی مانند طراحی جاب و ... بر عهده خودمان است ) اما نرم افراهایی تهیه شده اند که مدیریت Fragmentation را برای ما بسیار آسان کرده ند. در لینک زیر نمونه ای از این نرم افزار همراه با سورس کد و نحوه استفاده از آن آورده شده است:
https://www.codeproject.com/Articles/5162340/SQL-Index-Manager-Free-GUI-Tool-for-Index-Maintena
Forwarded from Mohsen Bandamir
خروجی اسکریپت زیر کدام گزینه است؟
Select nullif(0,'0')
Select nullif(0,null) Select nullif(0,' ') Select nullif(1,' ')
Anonymous Quiz
40%
0,0,0,1
16%
Null,0,null,1
18%
Null,0,0,1
26%
0,null,null,null
#آموزش T-SQL
✍️در اسکریپت بالا دو نکته آموزشی وجود دارد که دومی مهمتره!! :

🦻نکته اول:
آشنایی با عملکرد تابع NULLIF() که اگر دو مقدار ورودی به آن، شبیه یکدیگر باشند خروجی تابع مقدار NULL و در غیر اینصورت اولین مقدار را به عنوان خروجی نمایش می دهد.
https://www.w3schools.com/sql/func_sqlserver_nullif.asp
🦻نکته دوم و مهمتر:
زمانی که دو مقدار ورودی در این تابع از یک نوع نباشند یا به عبارتی data type متفاوت داشته باشند مثلا در
SELECT NULLIF(0,'0')
و یا:
SELECT NULLIF(0,'')
در اینجا همیشه، سعی می شود نوع مقدار دوم(پارامتر ورودی دوم) به نوع پارامتر ورودی اول تبدیل شود پس:
SELECT NULLIF(0,'0')
نوع داده ای مقدار '0' باید به int (نوع داده ای عدد 0 که پارامتر اول ست) تبدیل شود. چیزی شبیه این:
SELECT CAST('0' AS int)
که خروجی بالا عدد 0 است و با توجه به عملکرد تابع که در ابتدا توضیح داده شد خروجی
SELECT NULLIF(0,0)
می شود NULL و خروجی اجرای اولین دستور Select از اسکریپت بالا هست.

در صورتی که توضیحات رو بخوبی متوجه شدید، خروجی
SELECT NULLIF(0,'')
را تحلیل و توضیح رو در گروه قرار بدهید.
Forwarded from Mohsen Bandamir
قبل از نوشته شدن یک dirty page بر روی دیسک، چه عملیاتی باید حتما انجام شده باشد؟
Anonymous Quiz
34%
رخ دادن checkpoint
25%
نوشته شدن لاگ مرتبط بر روی دیسک
17%
مارک شدن pageبه عنوان old
24%
مارک شدن page به عنوان ready to write
Mohsen Bandamir
قبل از نوشته شدن یک dirty page بر روی دیسک، چه عملیاتی باید حتما انجام شده باشد؟
عملیات انجام شده از زمان بروزرسانی یک رکورد، تا ثبت نهایی تغییرات بر روی دیسک
Forwarded from Mohsen Bandamir
در sql 2019 یک فایل دیتابیس (Mdf) حداکثر تا چه حجمی می تواند رشد کند؟
Anonymous Quiz
36%
محدود به حجم دیسک
19%
۲ ترا بایت
25%
نا محدود
19%
۱۶ ترابایت
🗣🗣مژده، مژده:
راه اندازی مجدد سایت codeeatsleep.ir
با حمایت های خودتان، ما را در جهت انتقال تجارب و به اشتراک گذاری مطالب یاری کنید.