خانه SQL Server دسته (Batch) در T-SQL SQL Server دستورات SQL نوشته شده توسط: مجتبی شهریور تاریخ انتشار: ۲۶ مرداد ۱۳۹۴ آخرین بروزرسانی: 26 اردیبهشت 1402 زمان مطالعه: 5 دقیقه ۵ (۱) مقدمه دسته (Batch):مجموعه ی از یک یا چند دستور T-SQL که همواره همراه با هم به سرور ارسال می شوند که هر دسته از دستورات با هم ترجمه و بدنبال هم اجرا میشوند. چنانچه یک دسته ،شامل چندین دستور باشد. تمام مراحل بهینه سازی لازم روی مجموعه ی این دستورات انجام می شود و پلن اجرائی (Execution plan) بر مبنای مجموعه دستورات موجود در دسته ،تعیین می گردد. چند نمونه از دسته ها ۱- همه دستورات موجود در یک تریگر یک دسته محسوب می شود. 2-رشته ای که توسط یک فرمان EXECUTE اجرا می شود، یک دسته محسوب می شود. قواعد کار با دسته ها دستور CREATE در هرجائی بجزء در اولین دستور یک دسته قرار می گیرد، همه دستوراتی که در یک دسته، پس از این دستور قرار می گیرند بعنوان بخشی از همان دستور در نظر گرفته میشوند. اگر در یک دسته ، ساختار یک جدول تغییر داده شود ، نمی توان در همان دسته از ستونهای جدید استفاده کرد. اگر دستور EXECUTE اولین دستور یک دسته باشد می توان از نوشتن کلمه کلیدی EXECUTE خود داری کرد. چگونگی اجرای دسته ها در هر مرحله ارسال دسته ای از دستورات به سرور ،سروردر پنج مرحله آنها را مورد بررسی و پردازش قرار می دهد که این مراحل به شرح زیر می باشد : 1-تفکیک نگارشی: دستورات دریافتیاز نظر املا مورد بررسی قرار می گیرند. 2- تفکیک ارجاعی: اشیاء مورد ارجاء بررسی می شوند تا از وجود آنها و وجود مجوز دسترسی به آنها برای کاربر اطمینان حاصل شود. 3- بهینه سازی : طرح اجرای مناسب برای رسیدن به سریعترین مسیر اجرای دستورات را پیدا می کند. 4- ترجمه :طرح اجرایی ترجمه می شود. 5- اجرا: طرح ترجمه شده توسط سرور اجرا می شود. دسته های حاوی چند دستور SQL هر دسته می تواند حاوی چند دستور SQL باشد که این دستورات به عنوان یک گروه واحد، ترجمه و اجرا خواهند شد. مثال: USE PUBS Select title from titles where titel like select au_id, au_lname From authors Where au_lname = 'Green' هر دو دستور SQL موجود در این دسته با هم تفکیک، ترجمه و اجرا می شوند. هر کدام از این دستورات ، مجموعه نتایج خاص خود را دارند اما سرور ،پس از اجرای هردو دستور SELECT این دو مجموعه را با هم باز می گرداند. می توانیم مانند مثال زیر بین این دو دستور SELECT از یک دستور GO استفاده کنیم تا هر کدام از این دستورات یک دسته مجزا محسوب شوند: USE PUBS Select title from titles where titel like GO select au_id, au_lname From authors Where au_lname = 'Green' این بار ابتدا SELECT اول اجرا می شود و مجموع نتایج آن برگردانده و نمایش داده می شود سپس دستور دوم به سرور ارسال و اجرا می شود ولی باید توجه داشت در دو حالت نتیجه یکسان می باشد. نکته پایانی قرار دادن تعداد زیادتری دستور در یک دسته ،سرعت اجرای دستورات توسط سرور را افزایش می دهد . زیرا ضمن کاهش عملیات I/O امکان بهینه سازی یهتر نیز بوجود می آید. چه رتبه ای میدهید؟ میانگین ۵ / ۵. از مجموع ۱ اولین نفر باش معرفی نویسنده مقالات 1 مقاله توسط این نویسنده محصولات 0 دوره توسط این نویسنده مجتبی شهریور معرفی محصول ایمان باقری آموزش کوئری نویسی در sql server 2.190.000 تومان مقالات مرتبط ۰۲ آبان SQL Server ابزار Database Engine Tuning Advisor؛ مزایا، کاربردها و روش استفاده تیم فنی نیک آموز ۱۵ مهر SQL Server معرفی Performance Monitor ابزار مانیتورینگ SQL Server تیم فنی نیک آموز ۱۱ مهر SQL Server راهنمای جامع مانیتورینگ بکاپ ها در SQL Server تیم فنی نیک آموز ۰۸ مهر SQL Server Resource Governor چیست؟ آشنایی با نحوه پیکربندی و اهمیت های آن تیم فنی نیک آموز دیدگاه کاربران لغو پاسخ دیدگاه نام و نام خانوادگی ایمیل ذخیره نام، ایمیل و وبسایت من در مرورگر برای زمانی که دوباره دیدگاهی مینویسم. موبایل برای اطلاع از پاسخ لطفاً مرا با خبر کن ثبت دیدگاه Δ مجتبی شهریور ۱۰ / ۰۶ / ۹۴ - ۰۸:۱۲ از تمام دوستانی که از مقاله من دیدن کردن بخصوص عزیزانی که نظر دادن متشکرم پاسخ به دیدگاه مجتبی شهریور ۰۲ / ۰۶ / ۹۴ - ۰۴:۰۰ آقا یا خانم صبا در ضمن شما می تونید ازیسته بسته آموزشی شروع sql server در لینک زیر دیدن و استفاده بفرمایید https://nikamooz.com/product/beginning-with-sql-server پاسخ به دیدگاه مجتبی شهریور ۰۲ / ۰۶ / ۹۴ - ۰۴:۳۶ سلاماز اینکه مقاله من را خوندین متشکرمبرای شروع جای بهتر از همین سایت نیست بهترین ویژگی نیک آموز انگیزه ی هست که در آدم ایجاد میکنه.در ضمن شما می تونید مثل بنده ازه hello sql خشت اول استفاده بفرماییدموفق باشید پاسخ به دیدگاه صبا ۰۲ / ۰۶ / ۹۴ - ۰۲:۴۶ مقالتون را خوندم خوب بود تا حدودی فهمیدم من تازه با این سایت آشنا شدم و می خوام sql یاد بگیرم از کجا شروع کنم؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ پاسخ به دیدگاه مجتبی شهریور ۲۹ / ۰۵ / ۹۴ - ۱۱:۴۱ سلاممن از کتاب sql server انتشارات sams بیشتر استفاده کردم پاسخ به دیدگاه مهرداد ۲۹ / ۰۵ / ۹۴ - ۰۰:۱۵ سلام مقاله خوبی بود در صورت امکان منبع استفاده شده را معرفی بفرمایید.. پاسخ به دیدگاه مجتبی شهریور ۲۷ / ۰۵ / ۹۴ - ۰۶:۲۴ متشکرمهمانطور که در مقاله توضیح داده شده هر سری از دستورات بین یک GOیک دسته مجزا محسوب می شوند و به صورت مجزا پردازش می شوند.که خود این باعث انجام عمل I/O بیشتر و سرعت کمتر در پردازش می شود. پاسخ به دیدگاه kianshirmardi@yahoo.com ۲۷ / ۰۵ / ۹۴ - ۰۵:۴۸ سلاممقاله خوبی داشتین…..ممنون میشم اگه بفرمایید تاثیر GOدر سرعت پردازش چگونه هست؟ پاسخ به دیدگاه مجتبی شهریور ۲۷ / ۰۵ / ۹۴ - ۱۲:۴۹ سلامحقیقتا منبعی که بنده در این زمینه مطالعه کردم به این نحور این ۵ مرحله را بیان کرده بود ولی با توجه بیشتر شاید بتوان گفت دو مرحله اول روی بررسی تمر کز دارند.. پاسخ به دیدگاه tiyara9090@hotmail.com ۲۷ / ۰۵ / ۹۴ - ۱۲:۳۵ با تشکر از مقاله شمابهتر نبود در قسمت چگونگی اجرای دسته قسمتهای بررسی و پردازش از هم مجزا بیان میشد؟؟؟؟؟؟؟؟؟؟ پاسخ به دیدگاه 1 2