بهینه سازی زیرساخت شبکه و IT

عیب یابی و رفع مشکلات شبکه کامپیوتری

ارائه طرح جامع بهینه سازی زیرساخت IT و سیستم های شبکه کامپیوتری

ادامه مطلب

ایمیل سرور اختصاصی

پست الکترونیک درون سازمانی

ارائه میل سرور به همراه راهکار ارتباطات یکپارچه مایکروسافت

ادامه مطلب

سامانه دورکاری

نرم افزار دورکاری و مجازی سازی برنامه

دسترسی راه دور به برنامه ها از طریق راهکار نرم افزاری دورکاری

ادامه مطلب

خدمات میزبانی سرویس

میزبانی سرویس و ارائه سرور مجازی و اختصاصی در ایران

اجاره سرور و فضای رک (کولوکیشن) در دیتاسنتر گروه و مشاوره راه اندازی هاستینگ اختصاصی

ادامه مطلب

فایروال شبکه

تامین امنیت زیرساخت شبکه

ارائه کامل ترین و امن ترین فایروال تحت شبکه دنیا با لایسنس رایگان مادام العمر

ادامه مطلب

مشاوره فناوری اطلاعات

خدمات مشاوره تخصصی در حوزه فناوری اطلاعات و انفورماتیک IT، تهیه طرح ارزیابی وضعیت فعلی شبکه و سرویس ارائه راهکار شبکه و مستند از وضعیت مطلوب

راهکارهای تخصصی شبکه

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

پشتیبانی و نگهداری شبکه

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

آموزش مهندسی شبکه

در موسسه آموزش های تخصصی گروه با فراهم کردن فضای مجهز و امکانات مناسب، خدمات آموزش مهندسی شبکه کامپیوتر مطلوبی را ارائه می‌کنیم

تصمیم داریم در این مبحث، به آموزش بانک اطلاعاتی اس کیو ال سرور SQL Server Database پرداخته و دستور زبان T-SQL را بیشتر توضیح دهیم تا شما را با نکاتی آشنا کنم که شاید کمتر با آن ها برخورد کرده باشید.

ترکیب Set Operations و Join ها در سرور SQL

در این مطلب میخواهیم از ترکیب Set Operations و Join ها با شما صحبت کنیم.

فرض کنید ما تصمیم داریم بین دو تا جدول Inner join بزنیم ولی یکی از فیلدهای شرط ما Null هست.

خوب اگر ما بیایم این دو فیلد رو مساوی قرار بدهیم، چون Null نمیتواند مساوی قرار بگیرد پس در واقع در شرط به صورت Unknown ارزیابی میشود و مقدار False برمیگرداند ولی براساس شرط ما این ردیف نیز باید برگردد.

تصمیم داریم در این مبحث، به آموزش بانک اطلاعاتی اس کیو ال سرور SQL Server Database پرداخته و دستور زبان T-SQL را بیشتر توضیح دهیم تا شما را با نکاتی آشنا کنم که شاید کمتر با آن ها برخورد کرده باشید.

راه دوم این است که بیاییم این دو فیلد را با مقدار Isnull باهم مقایسه کنیم.

SELECT EL.country, EL.region, EL.city, EL.numemps, CL.numcusts
FROM dbo.EmpLocations AS EL
INNER JOIN dbo.CustLocations AS CL
ON EL.country = CL.country
AND ISNULL(EL.region, N'<N/A>') = ISNULL(CL.region, N'<N/A>')
AND EL.city = CL.city;

در اینجا مشکل ما حل میشود و مقدار رکورد مورد نظر برمیگردد ولی چون فیلدهای Region دستخوش تغییرات شده اند در جستجوهای ما SQL Server  دیگر به Sort بر روی این فیلدها نگاهی نمیکند (اگر ایندکسی بر روی انها باشد و سورت شده باشد)‌و اگر رکوردها زیاد باشند و Merge join انجام شود خودش یک Sort انجام میدهد. یا در تعداد پایین می آید ابتدا Index Seek بر روی شرط Country انجام میشود و دو شرط بعدی در واقع بر روی کل رکوردهای باقی مانده انجام میشود.که یک مقایسه زیادی هست.

راه سوم این هست که بیایم ازدستور Isnull استفاده کنیم.

SELECT EL.country, EL.region, EL.city, EL.numemps, CL.numcusts
FROM dbo.EmpLocations AS EL
INNER JOIN dbo.CustLocations AS CL
ON EL.country = CL.country
AND (EL.region = CL.region OR (EL.region IS NULL AND CL.region IS NULL))
AND EL.city = CL.city;

در این روش کل شرط ها در Index Seek انجام می پذیرد و پلن بهینه ای خواهیم داشت و از Sort روی ایندکس ها نیز بهره میبرد.

راه بعدی هم ترکیب Set Operation ها و Join هست.

SELECT EL.country, EL.region, EL.city, EL.numemps, CL.numcusts
FROM dbo.EmpLocations AS EL
INNER JOIN dbo.CustLocations AS CL
ON EXISTS (SELECT EL.country, EL.region, EL.city
intersect
SELECT CL.country, CL.region, CL.city);

در این روش پلن ایجاد شده مانند کد قبل هست و پلن بهینه ای تولید میشود و چون Intersect  میتواند Null را ارزیابی کند پس آن ردیفی که دارای Region برابر Null هست نیز داخل رکوردهای ما هست و در پلن بیرونی نیز ارزیابی میشود.

آموزش دستور در زبان T-SQL

غالباً برای یک رشته ای که با , از هم جدا شده نیاز است که به صورت جدول تبدیل می کنند و برای این امر شروع به نوشتن توابعی کردند که معمولا بهینه نبوده است.

از نسخه ۲۰۱۶ به بعد تابعی به اسم String_split به زبان قدرتمند T-SQL اضافه شده که اینکار را برای شما می کند.

برای استفاده ا زاین تابع حتما باید Compatibility level برابر ۱۳۰ یا بزرگتر باشد.

نمونه استفاده این تابع هم در کد زیر ملاحظه می کنید.

DECLARE @orderids AS VARCHAR(MAX) = N'10248,10542,10731,10765,10812';
SELECT value
FROM STRING_SPLIT(@orderids, ',');

به دلیل این که یک Result Set برگردانده میشود میتوانید در Join ها و Apply و ... نیز استفاده کنید.

تماس با شرکت

 تهران، مطهری، میرعماد، کوچه دهم، پلاک 14 واحد 2 
تلفن تماس: 88173317 021
ارتباط زنده اینترنتی 24 ساعته از طریق تلگرام با کارشناسان پشتیبانی مهندسی شبکه پال نت کانال تلگرام PalnetGroup@
پشتیبانی شبکه و ارتباط برخط و آنلاین از طریق واتس اپ WhatsApp با شماره موبایل ارتباط با واتس اپ
WhatsApp
گفتگوی آنلاین از طریق واتس اپ با کارشناسان گروه برای ارسال  پیشنهادات و  مستندات و حتی ارتباط در مواقع ضروری

JoomShaper