عنقودية غير متفاوت مؤشر / على عمود معرف فريد في SQL Server

StackOverflow https://stackoverflow.com/questions/821108

سؤال

ولقد قرأت العديد من الأسئلة / الأجوبة هنا تشير أساسا أن وجود فهرس متفاوت المسافات على عمود uniqueidentifier هو سوء اختيار لأسباب تتعلق بالأداء. بغض النظر، ولست بحاجة لاستخدام uniqueidentifier كمفتاح أساسي بلدي، وأنا لا أريد أن استخدام newsequentialid () لأن القيم الناتجة متشابهة جدا من بعضها البعض (ولست بحاجة معرفات أكثر عشوائية بحيث يمكن للمستخدمين لا [معقول] 'تخمين' ID آخر).

وهكذا، ما هي أفضل طريقة للمؤشر هذا PK؟ على الرغم من أن فهرس متفاوت المسافات في هذا العمود ليست مثالية، هل هو أفضل من "فريدة من نوعها غير متفاوت،" مؤشر؟

وأنا باستخدام SQL Server 2005.

هل كانت مفيدة؟

المحلول

وأولا وقبل كل شيء، إذا كنت تحاول استخدام NEWID() لتحقيق العشوائية (أكثر من مجرد النظر عشوائي)، وكنت في ورطة.

وانها عادة ما تكون أقل من الاختيار المثالي لمؤشرات أخرى سوف مرجع مفتاح فهرس متفاوت المسافات وسوف مفتاح فهرس متفاوت المسافات طويلة تحط من أداء جميع الفهارس. هل يمكن إنشاء عمود IDENTITY صحيح وجعل هذا مؤشر متفاوت المسافات ومجرد إنشاء فهرس غير متفاوت فريد على العمود uniqueidentifier.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top