یک نکتهی تکمیلی
از SQL Server 2012 SP1 به بعد، ایندکس جدیدی به نام Selective XML Indexes به مجموعهی ایندکسهای قابل تعریف بر روی یک ستون XML ایی اضافه شدهاست و این مزایا را به همراه دارد:
- برخلاف ایندکسهای اولیه و ثانویه بحث شده در مطلب جاری، کل محتوای سند را ایندکس نمیکنند. به همین جهت حجم کمتری را اشغال کرده و سرعت Insert و Update را کاهش نمیدهند.
- با استفاده از Selective XML Indexes تنها XPathهایی را که مشخص میکنید، ایندکس خواهند شد. بنابراین بر اساس کوئریهای موجود، میتوان ایندکسهای بهتری را تعریف کرد.
این نوع ایندکسها به صورت پیش فرض فعال نبوده و نیاز است از طریق رویه ذخیره شده سیستمی sp_db_selective_xml_index، فعال شوند.
و پس از آن برای تعریف یک ایندکس انتخابی خواهیم داشت:
قسمت path آن برای مثال در عمل، چنین شکلی را میتواند داشته باشد:
از SQL Server 2012 SP1 به بعد، ایندکس جدیدی به نام Selective XML Indexes به مجموعهی ایندکسهای قابل تعریف بر روی یک ستون XML ایی اضافه شدهاست و این مزایا را به همراه دارد:
- برخلاف ایندکسهای اولیه و ثانویه بحث شده در مطلب جاری، کل محتوای سند را ایندکس نمیکنند. به همین جهت حجم کمتری را اشغال کرده و سرعت Insert و Update را کاهش نمیدهند.
- با استفاده از Selective XML Indexes تنها XPathهایی را که مشخص میکنید، ایندکس خواهند شد. بنابراین بر اساس کوئریهای موجود، میتوان ایندکسهای بهتری را تعریف کرد.
این نوع ایندکسها به صورت پیش فرض فعال نبوده و نیاز است از طریق رویه ذخیره شده سیستمی sp_db_selective_xml_index، فعال شوند.
sys.sp_db_selective_xml_index @dbname = 'dbname', @selective_xml_index = 'action: on|off|true|false'
create selective xml index index_name on table_name(column_name) for (<path>)
for( pathColor = '/Item/Product/Color' as SQL nvarchar(20), pathSize = '/Item/Product/Size' as SQL int )