در قسمت قبل یادگرفتیم که چگونه GraphQL را با ASP.NET Core یکپارچه کنیم و اولین GraphQL query را ایجاد و دادهها را از سرور بازیابی کردیم. البته ما به این query های ساده بسنده نخواهیم کرد. در این قسمت میخواهیم یاد بگیریم که چگونه query های پیشرفتهی GraphQL را بنویسیم و در زمان انجام این کار، نمایش دهیم که چگونه خطاها را مدیریت کنیم و علاوه بر این با queries, aliases, arguments, fragments نیز کار خواهیم کرد. Creating Compl ...
در این مقاله هدف این است که GraphQL را در ASP.NET Core راه اندازی کنیم. از یک کتابخانه ثالث برای آسانتر کردن یکپارچگی استفاده میکنیم و همچنین با جزئیات، توضیح خواهیم داد که چگونه میتوان از elementهای مربوط به GraphQL مثل (Type ،Query و Schema) برای کامل کردن فرآیند یکپارچگی در ASP.NET Core استفاده کنیم. GraphQL و تفاوتهای آن با REST GraphQl یک query language میباشد که queryها را با استفاده از type systemهایی که ما ...
در یک hash join، اطلاعات از دو ورودی نامرتب، دریافت و join میشوند که نسبت به merge join، عملیات سنگینتری است. برای اینکار، یک hash table را از دیتاست خارجی و یک نمونهی دیگر را بر اساس دیتاست درونی ساخته و سپس کار انطباق ردیفها را انجام میدهد.
بررسی عملگر hash join
ابتدا در management studio از منوی Query، گزینهی Include actual execution plan را انتخاب میکنیم. سپس کوئریهای زیر را اجرا میکنیم: USE [Wide ...
در یک merge join، اطلاعات از دو ورودی مرتب شده، دریافت و join میشوند. اگر این ورودیها از پیش مرتب شده نباشند (دارای ایندکس مناسبی نباشند)، یک عملگر Sort در این میان تزریق خواهد شد. عملگر Sort نیز اندکی متفاوت است از سایر عملگرها. این عملگر یک iterator نیست (یعنی ردیف به ردیف عمل نمیکند) و اگر اطلاعاتی وارد آن شد، ابتدا باید کل آن مرتب شود و سپس به قسمتهای بعدی ارسال گردد؛ که مصرف حافظه و I/O زیادی را به همراه دارد. به همین جهت جزو موار ...
در این نوشتار چند مورد از مفیدترین کلیدهای میانبر ویژوال استودیو شرح داده میشوند. ویژوال استودیو امکانات خوبی را برای سرعت بخشیدن به برنامهنویسی دارد. دانستن این نکات سرعت برنامهنویسی را افزایش خواهد داد. ۱) جابجایی بین تبها: «Ctrl + Tab» با کلیدهای ترکیبی Ctrl + Tab و Ctrl + Shift + Tab میتوانید بین پنجرههای Active جابجا شوید. با کلیدهای جهتنما هم میتوانید به بقیه پنجرهها از جمله Properties منتقل شوید. ناگفته ن ...
کاربران امروزه با عناصری که به نحوی
خاص درون صفحه عمل میکنند، آشنا شدهاند. بنابراین انتخاب مناسب برای اتخاذ این عناصر زمانی
مناسب است که به تکمیل کارآیی و رضایت کاربر
کمک کند. یک کامپوننت در واقع از دو بخش تشکیل شدهاست: 1 - اول اینکه چگونه به نظر میرسد
( UI ). 2 – دوم اینکه چگونه کار میکند ( UX ) . این عناصر رابط ( component ) شا ...
دراین قسمت قصد داریم عملگر nested loop حاصل از نوشتن جوینها را دقیقتر بررسی کنیم. یک حلقهی تو در تو، از هر ردیف ورودی (دیتاست خارجی) برای یافتن ردیفهایی (دیتاست درونی) که نوع جوین را برآورده میکنند، استفاده میکند. بررسی مفهوم دیتاست خارجی و درونی
ابتدا در management studio از منوی Query، گزینهی Include actual execution plan را انتخاب میکنیم. سپس کوئریهای زیر را اجرا میکنیم: USE [WideWorldImporters];
GO
...
پس از آشنایی مقدماتی با نحوهی خواندن یک Query Plan، اکنون نوبت به بررسی عملگرهایی است که در آن مشاهده میشوند و همچنین تغییرات در کوئریها چگونه بر روی آنها تاثیر گذاشته و آنها را تغییر میدهند و این تغییرات چه تاثیری را بر روی کارآیی خواهند داشت.
عملگرهای Scans و Seeks
در حالت کلی میتوان دو نوع جدول بدون و با ایندکس را درنظر گرفت. در حالت جداول بدون ایندکس، برای جستجوی اطلاعات نیاز به Table Scan وجود دارد و ...
برای هر کوئری که به SQL Server ارسال میشود، یک Plan تولید خواهد شد. این عملیات نیز توسط بخش Query Optimizer آغاز میگردد. به آن میتوان همانند فریمورکی که درون SQL Server قرار گرفته و کارش یافتن یک Query Plan مناسب مخصوص کوئری رسیدهاست، نگاه کرد. ابتدا عملیات Parsing صورت میگیرد. توسط آن Syntax کوئری رسیده بررسی شده و صحت آن تائید میگردد. پس از آن یک Parser tree تولید میشود که نمای درونی آن کوئری است. سپس فاز Binding رخ میدهد که در ...
در قسمتهای قبلی ( ^ , ^ , ^ ) نحوهی ارتباط بین کامپوننتها بررسی شد؛ روش دیگری هم برای به اشتراک گذاری دادهها بین کامپوننتها وجود دارد که با استفاده از کتابخانهای بنام Vuex پیاده سازی میشود. وقتی برنامهی شما وسعت پیدا میکند و ارتباط بین کامپوننتها بیشتر و پیچیدهتر میشود، روشهای قبلی ( ^ , ^ , ^ ) کارایی لازم را ندارند و یا اینکه به سختی میشود دادههای به اشتراک گذاشته شدهی بین کامپوننتها را مدیریت نمود. در اینجا میتوان ا ...