گزینه IGNORE_DUP_KEY
آموزش پیشرفته SQL Server (جلسه پنجم) - گزینه IGNORE_DUP_KEY
بررسی گزینه IGNORE_DUP_KEY، قسمتی از آموزش پیشرفته SQL Server است، پیشنهاد می شود قبل از مطالعه ی این گزینه، قسمت های قبلی را مطالعه فرمایید.
همان طور که در مطلب گزینه های ساخت ایندکس مشاهده کردید، هنگام ساخت ایندکس با گزینه های مختلفی سروکار داریم:
گزینه های مختلف ایندکس
CREATE [ UNIQUE ] [ CLUSTERED | NONCLUSTERED ] INDEX index_name
ON table_name (column [ ASC | DESC ] [ ,...n ] )
[ WITH (
PAD_INDEX = { ON | OFF }
| FILLFACTOR =fillfactor
| SORT_IN_TEMPDB = { ON | OFF }
| IGNORE_DUP_KEY = { ON | OFF }
| STATISTICS_NORECOMPUTE = { ON | OFF }
| STATISTICS_INCREMENTAL = { ON | OFF }
| DROP_EXISTING = { ON | OFF }
| ONLINE = { ON | OFF }
| ALLOW_ROW_LOCKS = { ON | OFF }
| ALLOW_PAGE_LOCKS = { ON | OFF }
| MAXDOP =max_degree_of_parallelism
| DATA_COMPRESSION = { NONE | ROW | PAGE} ]
بررسی گزینه IGNORE_DUP_KEY
هنگام ساخت ایندکس از نوع UNIQUE، گزینه IGNORE_DUP_KEY کاربرد پیدا می کند.
گزینه IGNORE_DUP_KEY با مقدار ON یا OFF تنظیم می شود.
زمانی که با عملیات های دسته جمعی (Bulk Insert) سروکار داریم، بعنوان مثال قرار است n میلیون رکورد درج شود، حالا اگر در میانه عملیات، یکی از رکوردها تکراری باشد، SQL Server خطای تکراری بودن داده را صادر می کند و کل عملیات را RollBack (عقبگرد) می کند.
حالا برای جلوگیری از اتفاق بالا، فقط کافی است گزینه IGNORE_DUP_KEY را با مقدار ON تنظیم نمایید.
مثال عملی استفاده از گزینه IGNORE_DUP_KEY
گزینه IGNORE_DUP_KEY
CREATE UNIQUE CLUSTERED INDEX IX1 ON T1(F1)
INSERT INTO T1 VALUES (1,'A')
INSERT INTO T1 VALUES (2,'B')
INSERT INTO T1 VALUES (2,'B')
INSERT INTO T1 VALUES (3,'C')
در ابتدای مثال بالا، اسکریپت ساخت یک ایندکس از نوع UNIQUE CLUSTERED روی فیلد اول (F1) وجود دارد. در ادامه دو Insert متمایز شده با رنگ قرمز، شامل داده های تکراری هستند. که به دلیل تکرار در فیلد F1 با خطا مواجه خواهد شد...! توجه داشته باشید که Insert چهارم اجرا نخواهد شد...!
اما اگر در ابتدای مثال بالا اسکریپت ساخت ایندکس را با اسکریپت زیر جایگزین کنیم، خطایی رخ نخواهد داد و Insert چهارم اجرا خواهد شد:
به گزینه IGNORE_DUP_KEY دقت کنید
CREATE UNIQUE CLUSTERED INDEX IX1 ON T1(F1)
WITH (IGNORE_DUP_KEY = ON)
در ادامه آموزش گزینه IGNORE_DUP_KEY خواهید دید ...!
با خرید جلسه 5 از بسته آموزشی "افزایش کارایی پایگاه داده" موارد زیر را خواهید دید:
- با یک مثال عملی نحوه ی استفاده از گزینه IGNORE_DUP_KEY را نشان دهید.
دسترسی به موارد آموزشی بالا در بسته خریداری شده
- شماره جلسه: 5
- نام فایل ویدئو: 01
- فرمت فایل: mp4.
نقطه شروع بحث بالا (گزینه IGNORE_DUP_KEY) در ویدئو: 35:30
برای خرید و دانلود کامل آموزش پیشرفته SQL Server کلیک کنید.
- نوشته شده توسط امیر پهلوان صادق
- بازدید: 7733