سیستم مدیریت پایگاه داده ، که SQL Server است ، از کلیدها برای شناسایی ردیف ها در یک جدول استفاده می کند. کلیدها با ترکیب یک یا چند ستون از یک جدول ، ردیف ها را مشخص می کنند. SQL همچنین از ایندکس ها برای سرعت بخشیدن به بازیابی داده ها از ردیف ها در یک جدول استفاده می کند. در این مقاله نحوه ایجاد کلیدها و فهرست هایی برای جداول مرکزی تجارت از AL Code توضیح داده شده است.
در AL ، یک تعریف کلیدی دنباله ای از یک یا چند شناسه میدانی از یک جدول است. بسته به نوع کلید می توانید کلیدها را در اشیاء جدول و اشیاء پسوند جدول تعریف کنید. دو نوع کلید وجود دارد: اولیه و ثانویه.
کلید اصلی داده ها را در یک جدول ردیابی می کند. کلید اصلی از حداکثر 16 قسمت در یک رکورد تشکیل شده است. ترکیبی از مقادیر در زمینه ها در کلید اصلی امکان شناسایی منحصر به فرد هر رکورد را فراهم می کند. در AL ، اولین کلید تعریف شده در یک شیء جدول ، کلید اصلی است. کلید اصلی ترتیب منطقی را که در آن سوابق ذخیره می شود ، بدون توجه به قرار دادن فیزیکی قسمتهای موجود در شیء جدول ، تعیین می کند.
از نظر منطقی ، سوابق به صورت متوالی به ترتیب صعودی ذخیره می شوند و توسط کلید اصلی مرتب می شوند. SQL Server قبل از اضافه کردن یک رکورد جدید به یک جدول ، بررسی می کند که آیا اطلاعات موجود در قسمتهای اصلی کلید رکورد بی نظیر است یا خیر. اگر چنین است ، سپس ضبط را در موقعیت منطقی صحیح قرار می دهد. سوابق به صورت پویا طبقه بندی می شوند تا پایگاه داده همیشه از نظر ساختاری صحیح باشد. این مرتب سازی امکان دستکاری سریع داده ها و بازیابی را فراهم می کند.
کلید اصلی همیشه فعال است. SQL Server جدول را به ترتیب کلید اصلی نگه می دارد و سوابق را با مقادیر تکراری در زمینه های اصلی کلید رد می کند. به همین دلیل مقادیر موجود در کلید اصلی همیشه باید بی نظیر باشند. این مقدار در هر زمینه در کلید اصلی نیست که باید بی نظیر باشد. در عوض ، این ترکیبی از مقادیر در تمام زمینه هایی است که کلید اصلی را تشکیل می دهند.
در محیط توسعه ، ایجاد یک کلید اصلی بر اساس حداکثر 20 زمینه از نظر فنی امکان پذیر است. با این حال ، به دلیل محدودیت های سرور SQL ، فقط از 16 مورد اول استفاده می شود.
در یک شیء جدول ، هر کلید تعریف شده پس از کلید اصلی کلیدهای ثانویه نامیده می شود. تمام کلیدهای تعریف شده در یک شیء جدول جدول کلیدهای ثانویه در نظر گرفته می شوند.
یک کلید ثانویه در SQL Server با استفاده از ساختاری که یک فهرست نامیده می شود ، اجرا می شود. این ساختار مانند شاخصی است که در کتابهای درسی استفاده می شود. فهرست کتاب درسی به طور حروف الفبا اصطلاحات مهم را در پایان یک کتاب ذکر می کند. در کنار هر اصطلاح شماره صفحه قرار دارد. برای یافتن لیستی از شماره های صفحه (آدرس) می توانید به سرعت در فهرست جستجو کنید و می توانید با جستجوی صفحات مشخص شده ، این اصطلاح را پیدا کنید. این شاخص یک شاخص دقیق است که نشان می دهد هر اصطلاح در کتاب درسی رخ می دهد.
هنگامی که یک کلید ثانویه را تعریف می کنید و آن را به صورت فعال علامت گذاری می کنید ، یک فهرست به طور خودکار در SQL Server نگهداری می شود. این فهرست منعکس کننده ترتیب مرتب سازی است که توسط کلید تعریف شده است. چندین کلید ثانویه می تواند همزمان فعال باشد.
یک کلید ثانویه می تواند غیرفعال شود به طوری که فضای پایگاه داده را اشغال نمی کند یا در حین بروزرسانی ها برای حفظ شاخص خود از زمان استفاده نمی کند. کلیدهای غیرفعال می توانند دوباره فعال شوند ، اگرچه این عملیات می تواند زمان آور باشد زیرا سرور SQL باید کل جدول را برای بازسازی شاخص اسکن کند.
زمینه هایی که کلیدهای ثانویه را تشکیل می دهند همیشه حاوی داده های منحصر به فرد نیستند. SQL Server سوابق را با داده های تکراری در زمینه های کلید ثانویه رد نمی کند. بنابراین اگر دو یا چند سوابق حاوی اطلاعات یکسان در کلید ثانویه هستند ، SQL Server از کلید اصلی جدول برای حل این درگیری استفاده می کند.
شما می توانید لیستی از ستون های بالقوه را مشاهده کنید که می توانند فهرست بندی شوند و سایر اطلاعات مفید در مورد آنها در تجارت مرکزی در فهرست های مفقود پایگاه داده. برای اطلاعات بیشتر در مورد فهرست های گمشده ، به فهرست های گمشده در Dynamics 365 Business Central مراجعه کنید
یک تعریف کلیدی شامل ویژگی منحصر به فرد است که می توانید برای ایجاد یک محدودیت منحصر به فرد در جدول در SQL Server استفاده کنید. یک کلید منحصر به فرد تضمین می کند که سوابق موجود در یک جدول دارای مقادیر میدانی یکسان نیستند. با یک کلید منحصر به فرد ، وقتی جدول تأیید می شود ، مقدار کلیدی برای منحصر به فرد بودن بررسی می شود. اگر جدول شامل سوابق با مقادیر تکراری باشد ، اعتبارسنجی از بین می رود. یکی دیگر از مزایای شاخص های منحصر به فرد ، ارائه اطلاعات به بهینه ساز پرس و جو است که به تولید برنامه های اجرای کارآمدتر کمک می کند.
شما می توانید کلیدهای ثانویه منحصر به فرد ایجاد کنید که از چندین زمینه تشکیل شده است ، مانند کلیدهای اولیه. در این حالت ، این ترکیب مقادیر موجود در کلید ثانویه است که باید بی نظیر باشد. به عنوان مثال جدول مشتری را در نظر بگیرید. فرض کنید می خواستید اطمینان حاصل کنید که هیچ مشتری وجود ندارد که ترکیبی از ارزش ها را برای نام ، آدرس و زمینه های شهر داشته باشد. شما می توانید یک کلید منحصر به فرد برای این زمینه ها ایجاد کنید.
بر خلاف کلیدهای اولیه ، می توان چندین کلیدهای ثانویه منحصر به فرد را روی یک جدول تعریف کرد.
خاصیت منحصر به فرد در اشیاء پسوند جدول پشتیبانی نمی شود.
همیشه یک کلید ثانویه منحصر به فرد در قسمت SystemID وجود دارد.
معرفی شده در: Business Central 2021 Wave 2 Wave 2
با داشتن کلیدهای ثانویه غیر خوشه ای ، می توانید از ویژگی های Fields Fields استفاده کنید تا زمینه هایی را اضافه کنید که جزئی از خود کلید نیستند. در SQL Server ، این زمینه های غیر کلید مطابق با ستون های موجود است. استفاده از زمینه های موجود به شما امکان می دهد شاخص هایی را ایجاد کنید که نمایش داده های بیشتری را در بر می گیرد و به شما امکان می دهد حداکثر تعداد فیلدها را در یک کلید دور بزنید.
یک کلید ثانویه با زمینه های موجود می تواند عملکرد پرس و جو SQL را بهبود بخشد ، به خصوص هنگامی که شاخص SQL شامل تمام ستون های موجود در پرس و جو ، یا به عنوان ستون های کلیدی یا ستون های شامل باشد. عملکرد بهبود می یابد زیرا بهینه ساز پرس و جو می تواند تمام مقادیر ستون درون شاخص را پیدا کند. و به داده های جدول یا شاخص خوشه ای دسترسی پیدا نمی کند ، که منجر به عملکرد کمتر دیسک I/O می شود. برای کسب اطلاعات بیشتر در مورد ستون های موجود در SQL ، به ایجاد فهرست با ستون های موجود مراجعه کنید.
معرفی شده در: Business Central 2021 Wave 2 Wave 2
شاخص های ستونی غیر خوشه ای (که گاهی اوقات به آن NCCIS گفته می شود) در جداول پشتیبانی می شوند.
با ویژگی ColumnStoreIndex ، یک فهرست ستون غیر خوشه ای را در جدول در SQL Server ایجاد می کنید. استفاده از یک کلید ستون غیر خوشه ای می تواند عملکرد پرس و جو را هنگام انجام تجزیه و تحلیل در جداول بزرگ بهبود بخشد. این نوع شاخص از ذخیره داده های مبتنی بر ستون و پردازش پرس و جو برای دستیابی به 10 برابر عملکرد پرس و جو در نمایش داده های تحلیلی نسبت به ذخیره سازی سنتی ردیف سنتی استفاده می کند. همچنین می توانید حداکثر 10 برابر فشرده سازی داده ها را در اندازه داده های فشرده نشده در جداول عادی بدست آورید.
شما می توانید از یک شاخص ستونی غیر خوشه ای برای اجرای کارآمد تجزیه و تحلیل عملیاتی در زمان واقعی در پایگاه داده مرکزی تجارت استفاده کنید بدون اینکه نیاز به تعریف شاخص های الکلی در جلو داشته باشید (و بدون مشکلات قفل که گاهی اوقات شاخص ها را بر روی سیستم تحمیل می کنند.) هر زمان که می خواهید. به طور معمول یک کلید SIFT را در زمینه ها اضافه کنید تا عملیات جمع بندی/شمارش را انجام دهید ، از یک کلید ستون غیر خوشه ای استفاده کنید تا به جای آن تمام قسمت ها را به شاخص اضافه کنید.
برای نشان دادن ، در اینجا یک مثال ساده از جایگزینی دو کلید الکلی با یک شاخص ستونی غیر خوشه ای وجود دارد. فرض کنید شما قبلاً دو کلید الکلی را پیاده سازی کرده اید:
با داشتن یک فهرست ستون غیر خوشه ای ، فقط می توانید یک فهرست را به عنوان تعریف کنید:
برای اطلاعات بیشتر ببین:
یک تعریف کلیدی شامل ویژگی خوشه ای است که برای ایجاد یک شاخص خوشه ای استفاده می کنید. یک شاخص خوشه ای ترتیب فیزیکی را که در آن سوابق در جدول ذخیره می شود ، تعیین می کند. بر اساس مقدار کلیدی ، سوابق به ترتیب صعودی طبقه بندی می شوند. استفاده از یک کلید خوشه ای می تواند بازیابی سوابق را سرعت بخشد.
در هر جدول فقط یک شاخص خوشه ای وجود دارد. به طور پیش فرض اولیه به عنوان یک کلید خوشه ای پیکربندی می شود.
خاصیت خوشه ای در اشیاء پسوند جدول پشتیبانی نمی شود.
مثال زیر نشان می دهد که چگونه کلید اصلی در هنگام فعال بودن کلید ثانویه بر ترتیب مرتب سازی تأثیر می گذارد. جدول مشتری شامل چهار مدخل (سوابق) است و سوابق موجود در جدول مشتری دارای دو قسمت است: شماره مشتری و نام مشتری.
جدول زیر شامل لیست کلیدی برای جدول مشتری است.
| کلید | نوع کلیدی | تعریف |
|---|---|---|
| 1 | اولیه | شماره مشتری |
| 2 | ثانوی | نام مشتری |
هنگامی که بر اساس کلید اصلی مرتب می شوید ، جدول مشتری شبیه جدول زیر است.
| شماره مشتری | نام مشتری |
|---|---|
| 001 | مشتری ج |
| 002 | مشتری |
| 003 | مشتری ب |
| 004 | مشتری ج |
اگر کلید ثانویه را برای مرتب سازی انتخاب کنید ، سفارش براساس محتوای قسمت نام مشتری است. از آنجا که محتوای این زمینه ها منحصر به فرد نیستند ، سوابق باید مطابق با کلید اصلی تحت فشار قرار گیرند.
| نام مشتری | شماره مشتری |
|---|---|
| مشتری | 002 |
| مشتری ب | 003 |
| مشتری ج | 001 |
| مشتری ج | 004 |
دو رکورد که دارای یک مقدار نام مشتری یکسان هستند ، بر اساس شماره مشتری طبقه بندی می شوند.
جستجوی داده های خاص اگر چندین کلید تعریف شده و برای جدول که داده های مورد نظر را در خود جای داده است ، آسان تر است. شاخص های مربوط به هر کلید نماهای خاص را ارائه می دهد که جستجوهای سریع و انعطاف پذیر را امکان پذیر می کند. استفاده از کلیدها ، همانطور که در جدول زیر نشان داده شده است ، مزایا و معایب وجود دارد.
| اگر شما | عملکرد وقتی بهبود می یابد | عملکرد وقتی شما کند می شود |
|---|---|---|
| تعداد کلیدهای ثانویه را که به عنوان فعال مشخص شده اند ، افزایش دهید. | داده ها را در چندین دنباله مرتب سازی مختلف بازیابی کنید زیرا داده ها قبلاً مرتب شده اند. | داده ها را وارد کنید زیرا شاخص ها برای هر کلید ثانویه باید حفظ شوند. |
| تصمیم بگیرید که فقط از چند کلید استفاده کنید. | داده ها را وارد کنید زیرا حداقل تعداد شاخص ها حفظ می شوند. | داده ها را بازیابی کنید. ممکن است لازم باشد کلیدهای ثانویه را تعریف یا فعال کنید تا مرتب سازی مناسب را بدست آورید. بسته به اندازه بانک اطلاعاتی ، این عملیات می تواند مدتی طول بکشد ، زیرا این شاخص باید بازسازی شود. |
تصمیم به استفاده از چند یا بسیاری از کلیدها آسان نیست. کلیدهای مناسب و تعداد کلیدهای فعال برای استفاده ، سازش بین به حداکثر رساندن سرعت بازیابی داده ها و به روزرسانی داده ها (عملیاتی است که داده ها را درج ، حذف یا اصلاح می کند). به طور کلی ، اگر به ندرت مورد استفاده قرار می گیرد ، ممکن است ارزش آن را داشته باشد که کلیدهای پیچیده را غیرفعال کنید.
سرعت کلی به عوامل زیر بستگی دارد:
برای تعریف کلیدها ، کلمه کلیدی کلیدها را بعد از تعریف فیلدها اضافه کنید و سپس یک کلمه کلیدی کلیدی را برای هر کلید اضافه کنید:
کلیدیکلید (name2 ؛ زمینه ها)<>> نام را با متن توصیفی که می خواهید برای شناسایی کلید استفاده کنید جایگزین کنید. فیلد را با نام فیلدی که می خواهید به عنوان کلید استفاده کنید جایگزین کنید. اگر می خواهید چندین زمینه را در یک کلید واحد قرار دهید ، هر قسمت را با کاما جدا کنید.
در یک شیء جدول ، اولین کلمه کلیدی کلید اصلی را تعریف می کند. کلمات کلیدی بعدی کلیدهای ثانویه را تعریف می کنند.
با شروع در کسب و کار مرکزی نسخه 18 ، می توان یک برنامه افزودنی جدول ایجاد کرد که فقط تعاریف کلیدی را در خود جای داده است. شما می توانید از این استفاده کنید تا کلیدهایی را به جداول در برنامه پایه یا در برنامه های افزودنی AppSource اضافه کنید ، جایی که مالکیت تعاریف جدول را ندارید.
کد زیر نمونه های ساده ای از یک شیء جدول و شیء جدول را نشان می دهد.
جدول 50120 mybasetableفیلد (2 ؛ MyBasefield2 ؛ Integer)<>>کلیدیکلید (key1 ؛ mybasefield2) // کلید ثانویه<>>> TableExtension 50121 MyBaseTeAxt myBasetable را گسترش می دهدزمینه (4 ؛ myextfield2 ؛ Integer)<>زمینه (5 ؛ myextfield3 ؛ Integer)<>>کلیدیکلید (extkey2 ؛ mybasefield1 ، mybasefield2) // کلید ثانویه<>// کلید زیر مجاز نیست زیرا شامل زمینه هایی از جدول پایه و پسوند جدول // کلید (ExtKey3 ؛ MyBasefield1 ، MyExtField2) //>> TableExtension 50122 MyCustomerKeyext مشتری را گسترش می دهد>> چندین ویژگی وجود دارد که رفتار یک کلید را پیکربندی می کند ، مانند ویژگی های فعال ، خوشه ای و منحصر به فرد:
کلیدیکلید (CustomerInfo ؛ نام ، آدرس ، شهر)کلید (ارز ؛ کد ارز)> برای کسب اطلاعات بیشتر در مورد خصوصیات کلیدی مختلف ، به خصوصیات کلیدی مراجعه کنید.
در اشیاء پسوند جدول ، می توانید چندین کلید را دقیقاً مانند یک شیء جدول تعریف کنید. با این حال ، محدودیت های زیر اعمال می شود:
حداکثر 40 کلید می تواند با یک جدول همراه باشد.
هنگام تهیه نسخه جدید یک پسوند ، از محدودیت های زیر آگاه باشید تا از خطاهای هماهنگ سازی طرحواره جلوگیری کنید که مانع از انتشار نسخه جدید می شود:
اعمال می شود: Business Central 2022 انتشار موج 2 و بعد
هنگامی که شما برای زمینه های جدول از Intellisense استفاده می کنید ، اعضای اصلی اصلی با یک (PKX) در لیست IntelliSense مشخص می شوند ، جایی که x یک عدد پی در پی است ، که نشانگر ترتیب قسمت در کلید است. این به شما امکان می دهد زمینه های جدول را که کلید اصلی و توالی این زمینه ها را در کلید تشکیل می دهند ، شناسایی کنید.
پلتفرم های تجاری...
برچسب :
نویسنده : مریم کاویانی
بازدید : <-PostHit->