قالب وردپرس قالب وردپرس آموزش وردپرس قالب فروشگاهی وردپرس وردپرس
خانه / مقالات / SQL / مراحل کامپایل پروسیجرها، تریگرها و …

مراحل کامپایل پروسیجرها، تریگرها و …

مراحل کامپایل پروسیجرها، تریگرها و ...Reviewed by سالار on Aug 20Rating: 5.0

سلام به همه ی همراهان

همه ما درباره کامپایل، پلن اجرا و اصطلاحات مانند آن مطالبی میدانیم. در این پست قصد داریم فرایند کامپایل را به زبان ساده بیان کنیم چرا که دانستن آن، باعث میشود دلیل برخی رویدادها و قوانین در SQL Server واضحتر گردند.
کدهایی که به زبان TSQL نوشته میشوند، در اولین مرتبه اجرا باید مراحلی را طی نمایند که به آن کامپایل اطلاق میشود. بعنوان مثال برای اجرای یک کوئری، مراحل کامپایل به شرح زیر طی میشود:

:small_orange_diamond:مرحله Parse:

در ابتدای کار، گرامر یا Syntax کوئری (و دستورات) شما کنترل میگردد. وجود اشکال در این بخش، مانع ادامه کامپایل میگردد.

:small_orange_diamond:مرحله Bind:

وقتی در SELECT نام ستونی را قید میکنیم، اینکه ستون در جدول نامبرده وجود داشته باشد نیز بررسی میگردد. یعنی ممکن است دستور از لحاظ گرامر درست بوده و مرحله Parse را پشت سر گذاشته باشد، اما وجود Objectهای به کار گرفته شده نیز باید کنترل گردد. لذا جداول سیستمی که ساختار یا Meta Data را در بر دارند مورد استفاده قرار خواهند گرفت.

:small_orange_diamond:مرحله Algebrize:

تا این قسمت هنوز پردازشگر کوئری نمیداند چه محاسباتی در پیش هستند. این وظیفه Algebrizer است که هدف کوئری را تشخیص دهد. بعنوان مثال وقتی از تابع MAX استفاده کرده ایم، Algebrizer بررسی میکند که روی چه جنسی از داده ها این کار انجام میشود و اینکه آیا GROUP BY وجود دارد و الگوریتم دسته بندی نیاز است یا خیر.

:small_orange_diamond:مرحله Optimize:

اکنون که هدف کوئری مشخص شده، میتوان به راههای متنوعی که ما را به آن هدف میرساند فکر کرد. در Optimization هزینه راههای مختلف اجرای کوئری تخمین زده میشود تا بهترین آن انتخاب گردد. در ساده ترین حالت که Trivial Plan نام دارد، انجام Table Scan بررسی میشود که آیا Scan کردن یک جدول میتواند با توجه به شرط موجود، در زمان مطلوبی انجام پذیرد یا خیر. اگر خیر، کار به بررسی روشهای بیشتر میرسد. بررسی این روشها منوط به آن است که در روش قبل، زمان مطلوب تخمین زده نشود لذا مراحل پیشرفته تر مورد آزمون قرار میگیرند. دلیل آنکه از ابتدا همه روشها ارزیابی نمیشوند، زمان بر بودن خود این تحلیل هاست. خروجی فاز Optimization یک Plan یا نقشه اجرا خواهد بود که فرضا مشخص میکند ابتدا کدام Join انجام شده، سپس کدام فیلتر اعمال گردد، در چه مرحله ای Sort رخ دهد و …
این پلن به Execution Engine ارسال میگردد تا فاز اجرا آغاز شود.

ادامه دارد…

شاد باشید و خوش فکر…

امین ثباتی

مطلب پیشنهادی

بدون ثبت نام به وب سایت و انجمن‌ ها وارد شوید

بدون ثبت نام به وب سایت و انجمن‌ ها وارد شویدReviewed by سالار on Jul …

پاسخ دهید

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

 
در خبرنامه ما عضو شوید

در خبرنامه ما عضو شوید

در خبرنامه ما عضو شوید تا بهترین پست هفته مارو در ایمیل خودتون دریافت کنید :)

تبریک ! شما عضو خبرنامه ما شدید