دسته بندی ها
13:59 1399/10/09

ایندکس گذاری در Sql Server چگونه انجام می شود ؟ کاربرد ایندکس در Sql Server چیست ؟

مشخصات سوال کننده :
کاربر : hamid_b     امتیاز کاربر : 518     رتبه کاربر : 4
دسته بندی : Sql Server

به این سوال امتیاز بدهید    0
تعداد بازدید این سوال : 9774
هوش مصنوعی

پاسخ هوش مصنوعی

ایندکس گذاری در SQL Server روشی برای بهبود عملکرد جستجو در دیتابیس است. با استفاده از ایندکس، SQL Server می تواند داده ها را سریع تر پیدا کند، که به خصوص در جستجوهای پیچیده و با حجم بالای داده مفید است.

ایجاد ایندکس در SQL Server می تواند به صورت زیر انجام شود:

CREATE INDEX index_name
ON table_name (column1, column2, ...);

کاربرد ایندکس در SQL Server عبارتند از:

  • تسریع عملیات جستجو و بازیابی داده ها.
  • بهبود عملکرد دستورات مانند SELECT، JOIN و WHERE.
  • ایجاد ایندکس های منحصر به فرد که از تکرار داده ها جلوگیری می کند.

تاثیر ایندکس گذاری در جداول در SQL Server شامل موارد زیر است:

  • سرعت بخشیدن به جستجوها و عملیات خواندن.
  • کاهش زمان پاسخ به کویری ها در جداول بزرگ.
  • افزایش زمان پردازش به هنگام عملیات INSERT، UPDATE و DELETE به دلیل نیاز به بروزرسانی ایندکس ها.

بنابراین، استفاده از ایندکس نیاز به تعادل بین مزایا و هزینه های نگهداری آن دارد.

به این پاسخ امتیاز بدهید    0
امتیاز: - رتبه: -
پاسخ دهنده : fateme 15:02 1399/10/09

ایندکس گذاری جداول در Sql Server چیست

آموزش ایندکس گذاری در sql server

 

در ابتدا یک تعریف خیلی ساده و واضح از ایندکس گذاری در جداول Sql Server داشته باشیم. ایندکس گذاری به طور کلی یعنی مرتب سازی اطلاعات بر اساس معیارهای خاص. مثلا اطلاعات جدول کاربران را بر اساس نام مرتب سازی کنیم. به این عملیات ایندکس گذاری گفته می شود.

 

کاربرد ایندکس گذاری در Sql Server چیست ؟

کاربرد اصلی ایندکس گذاری مرتب سازی اطلاعات جهت انجام جست و جوهای سریعتر بین اطلاعات می باشد. شما فرض کنید جدولی دارید با 10 میلیون ردیف اطلاعات. قطعا جستجوی اطلاعات در چنین جدولی با کندی خواهد بود. اما اگر اطلاعات این جدول بر اساس معیار خاصی مرتب سازی شده باشند سرعت جستجو بسیار افزایش خواهد یافت. بنابراین کاربرد اصلی ایندکس گذاری جداول در Sql Server افزایش سرعت کوئری ها می باشد.

 

ایندکس گذاری در Sql Server چگونه انجام می شود

برای ایندکس گذاری در جداول در Sql Server باید به دو موضوع توجه داشت. اول اینکه ایندکس گذاری در Sql Server چگونه انجام می شود و دوم اینکه ایندکس گذاری را بر اساس چه معیارها و بر روی چه فیلدهایی انجام دهیم ؟ بنابراین در ادامه به این دو موضوع می پردازیم.

 

ایجاد ایندکس روی جدول در Sql Server

خب برای ایجاد یک ایندکس مراحل زیر را انجام دهید:

جدولی که قصد دارید روی آن ایندکس ایجاد کنید را انتخاب کنید و آن را باز کنید تا پوشه Indexes را مشاهده کنید.

ایندکس گذاری در sql server

روی Indexes کلیک راست کنید و گزینه New Index و Non Clustred Index را انتخاب کنید.

create non clustered index

 

فرم New Index باز می شود. در این فرم باید مشخصات ایندکسی را که میخواهیم ایجاد کنیم تعیین کنیم. به تصویر زیر دقت کنید

 

آموزش ایجاد ایندکس

 

  • در بخش شما 1 نام جدولی که قرار است بر روی یک یا چند فیلد آن ایندکس گذاری شود نمایش داده می شود. (در این مثال Product)
  • در بخش شماره 2 باید نام ایندکس را مشخص کنید. دقت کنید که ایندکس آبجکت ها یا اشیای دیتابیس محسوب می شوند و باید نام منحصر بفرد داشته باشند. یعنی شما نمی توانید در یک دیتابیس 2 ایندکس هم نام داشته باشید.
  • در بخش شماره 3 نوع ایندکس مشخص می شود که non clustred می باشد.
  • و در بخش شماره 4 هم ستون یا ستون هایی که قرار است درگیر این ایندکس باشند مشخص می شود.

خب روی دکمه Add کلیک کنید تا یک ایندکس جدید ایجاد کنیم. فرم Select Column باز می شود. در این فرم باید ستون یا ستون هایی را که می خواهید روی آنها ایندکس ایجاد شود را انتخاب کنید. در این مثال ما می خواهیم روی فیلد ProductName و ProductLastFee ایندکس ایجاد کنیم.

ایندکس در sql server

 

روی دکمه Ok کلیک کنید تا به فرم قبل برگردید. حالا ستون هایی که قرار است ایندکس گذاری شود مشخص شده است.

 

ایجاد non clustered index

 

روی دکمه Ok کلیک کنید تا ایندکس شما ایجاد شود. حالا ایندکس شما باید در لیست ایندکس های جدول شما نمایش داده شود.

 

index in sql server

 

خب به این ترتیب شما موفق به ایجاد یک ایندکس non Clustered بر روی جدول خود شده اید.

 

با چه معیارهایی بر روی جداول در Sql Server ایندکس گذاری کنیم

خب سوال اساسی اینجاست که چگونه تشخیص دهیم که یک جدول نیاز به ایندکس گذاری دارد یا خیر؟ و اگر نیاز به ایندکس گذاری دارد کدام ستون ها را برای ایندکس گذاری انتخاب کنیم. جهت ایجاد ایندکس بر روی جداول و همچنین انتخاب ستونهای ایندکس به نکات زیر توجه کنید.

  • معمولا بر روی جداولی باید ایندکس گذاری انجام شود که تعداد ستون های آنها زیاد می باشد.
  • معمولا بر روی جداولی باید ایندکس گذاری انجام شود که تعداد رکورهای خیلی زیادی دارد.
  • سعی کنید بر روی جداولی ایندکس گذاری کنید که تراکنش های زیادی در آن جدول انجام می شود. به عنوان مثال ممکن است جدولی تعداد ستون و ردیف زیادی هم داشته باشد ولی در روز یکی دو بار بیشتر از آن جدول استفاده نشود.
  • برای ایندکس گذاری فیلدهایی را انتخاب کنید که بیشتر مورد جستجو قرار می گیرند. به عنوان مثال در مثال بالا که جدول Product را داشتیم ما بر روی ProductName که نام کالا می باشد و ProductLastFee که قیمت کالا می باشد ایندکس گذاری کردیم. چون معمولا در یک سیستم فروشگاهی قیمت و نام کالا بیشتر مورد جستجو قرار می گیرد.
  • تا حد ممکن سعی کنید ایندکس گذاری بر روی یک فیلد انجام شود. مثلا در مثال بالا ما بر روی 2 فیلد انجام دادیم که می تواند خطرناک باشد!! (ایندکس گذاری اشتباه باعث کندی بیشتر می شود)
  • اگر می خواهید ایندکس بر روی بیش از یک فیلد قرار دهید 2 فیلد هم نوع و مشابه باشند. به عنوان مثال ایندکس بر روی "نام کالا" و "توضیحات کالا" می تواند مناسب باشد. اما در مثال بالا ما بر روی "نام کالا" و "قیمت کالا" یک ایندکس مشترک ایجاد کرده ایم که نام و قیمت هم نوع نیستند. بنابراین این ایندکس زیاد مناسب نیست. 

 

انواع ایندکس در Sql Server چیست

به طور کلی دو نوع ایندکس در جداول می توان ایجاد کرد.

  • Clustred Index : این ایندکس به صورت اتوماتیک بر روی همه جداول و بر اساس کلید اصلی ایجاد می شود.
  • Non Clustred Index :  این ایندکس ها را طراح دیتابیس با توجه به نیاز می تواند ایجاد کند.
به این پاسخ امتیاز بدهید    2
امتیاز: 1635 رتبه: 2
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود