ورود

View Full Version : uniqueidentifier یا کلید ترکیبی



Dashti
چهارشنبه 07 تیر 1391, 08:12 صبح
با سلام
من برای یک db که 3 جای دیگر هم مانند آن وجود دارد . لازم هست که برخی رکوردها
مابین این db انتقال داده شوند . که برای اینکار uniqueidentifier و کلید ترکیبی برای جداول پیشنهاد شده است .حالا باتوجه به اینکه اگر uniqueidentifier جهت PK ‌استفاده شود آیا این کار که باید در همه جداول هم درنظر گرفته شود باعث افزایش حجم و کاهش کارایی و سرعت واکشی دیتا نمیشود .

بهتر نیست از کلید ترکیبی استفاده شود . ؟ کسی هست تجربه اینکار را داشته باشد ؟
با تشکر

حمیدرضاصادقیان
چهارشنبه 07 تیر 1391, 09:57 صبح
سلام.
شما اگر از Replication استفاده میکنید خودش به جداول شما یک فیلد UniqueIndentifier اضافه میکنه.
برای کار شما میتوانید از کلیدهای ترکیبی استفاده کنید و اطلاعات هرمرکز رو با توجه به کد اون مرکز تفکیک کنید اینجوری سرعت کار شما نیز بالا خواهد رفت.
اگر میخواهید از Uniqueidentifier استفاده کنید دیگه نیازی به استفاده از کلیدهای ترکیبی نیست چون تقریبا غیر ممکنه کلید یکسان به شما بده.
زیرا هر مقدار این فیلد یک ترکیبی از network card + cpu clock هست که یک شماره یکتای 16 بایتی تولید میکنه.همچنین به دلیل حجم بالای این فیلد ایندکسی که شما روی این فیلد خواهید گذاشت بسیار کندتر از Index روی یک فیلد ترکیبی مثلا Integer هست.

Dashti
پنج شنبه 08 تیر 1391, 13:20 عصر
با سلام و تشکر از شما جناب آقای صادقیان
من از replication استفاده نمی کنم. اینکار بوسیله یک نرم افزار انجام میشه. توسط کاربر
من فقط می خواهم بدونم برای این جدول که طی سالیان رکوردهای زیادی خواهند داشت بهتر از کلید ترکیبی استفاده شود یا uniqueidentifier
البته من از یک سرور hp با مقدار ram 16 gig و sql 2008 r2 استفاده میکنم

من طی یک تست از ()NEWSEQUENTIALID استفاده کردم. از نظر حجم و سرعت خیلی بهتر شد .