PDA

View Full Version : فرق bigint و decimal به عنوان PK و تاثیر آن در کارایی



Microsoft.net
جمعه 23 شهریور 1386, 07:32 صبح
با سلام

اگه به جای bigint از decimal(24,0)d به عنوان PK استفاده بشه صرفا به خاطر اینکه تعداد رقمهای بیشتری میگیره آیا توی سرعت تاثیر منفی میزاره ؟ به عبارت دیگه ساختار Decimal در SQL چگونه است ؟ یعنی در حجم بالا تاثیر منفی روی کارایی داره ؟ آیا این درسته که بخاطر تعداد رقمهای بیشتری که میگیره بجای bigint در PK های AutoInc استفاده بشه ؟

SYNDROME
جمعه 23 شهریور 1386, 08:35 صبح
با سلام

با سلام
اگه به جای bigint از decimal(24,0)d به عنوان PK استفاده بشه صرفا به خاطر اینکه تعداد رقمهای بیشتری میگیره آیا توی سرعت تاثیر منفی میزاره ؟ به عبارت دیگه ساختار Decimal در SQL چگونه است ؟ یعنی در حجم بالا تاثیر منفی روی کارایی داره ؟ آیا این درسته که بخاطر تعداد رقمهای بیشتری که میگیره بجای bigint در PK های AutoInc استفاده بشه ؟
دوست عزیز به این توجه کنید که شما چند تا رکورد ممکن است ثبت کنید؟
Bigint سایز 8 و Decimal سایز 9 دارد و اگر تعداد رکودهای شما در حد میلیون و حتی 1 تا 2میلیارد است بهتر است از Int که سایز 4 است استفاده کنید تا بانک شما بی دلیل حجیم نشود.
موفق باشید

Microsoft.net
جمعه 23 شهریور 1386, 11:14 صبح
کاری به حجم ندارم سوالم اینه میتونه روی سرعت تاثیر بذاره یا نه ؟ و اگه آره چرا ؟

پویا
شنبه 24 شهریور 1386, 12:03 عصر
من فکر می کنم به این دلیل که bigint نوع داده صحیح هست از نوع اعشاری سریع تر عمل کنه

AminSobati
شنبه 24 شهریور 1386, 13:26 عصر
محسن جان،
هر چی مقایسه ساده تر باشه، جستجو هم میتونه سریعتر باشه. ساده بودن مقایسه هم از نظر سایز فیلد، و هم از نظر اعشار میتونه مد نظر قرار بگیره. اما مسئله اینجاست که تفاوت شاید در حدی باشه که ارزش نداشته باشه سایر مزایای decimal رو نادیده بگیرید. بعنوان جمع بندی، اگر خواص دیگه decimal برای کار ما مناسب باشه، استفاده از این فیلد مهمتر از این خواهد بود که در حد بسیار جزئی (و قابل اغماض) بهبود Performance بدست بیاریم