ورود

View Full Version : پیداکردن رکورد بعدی جدول



m_askery
دوشنبه 10 آذر 1399, 22:48 عصر
سلام
یک جدول دارم که کلید اصلی آن رندوم تولید میشه guid
چطور می توان با دانستن کلید یک رکورد مقدار رکورد بعدی را بدست آورد
یا
چطور می توان گفت سلکت کن 20 رکورد را از جایی که کلید آن مثلا 1254Fd54 است

fakhravari
سه شنبه 11 آذر 1399, 14:44 عصر
چون guid مرتب شده نیست باید یک rownumber بزارید و ایدی مورد نظر select کنید و با گرفتن row ان میتونید where بزارید مابین rownumber ها

m_askery
سه شنبه 11 آذر 1399, 16:09 عصر
برای جدولهای کوچک راه حل شما درست هست ولی من بیش از سه تریلیون رکورد داخل این جدول ذخیره کردم . آیا هیچ را هی وجود دارد که با استفاده از کلاستر ایندکس این جدول رکوردها را پیدا کنیم

Mahmoud.Afrad
جمعه 14 آذر 1399, 03:17 صبح
یک ستون با قابلیت مرتب سازی نیاز دارید. حتی برای ایجاد rownumber هم به چنین ستونی نیاز هست.

مگر اینکه هر بار تعدادی از سطرها را بخواهید دریافت کنید که با select top و except حل میشه.

H.Jafari
دوشنبه 17 آذر 1399, 14:13 عصر
چون guid به روش تصادفی تولید میشه امکان مرتب سازی بر اساس اون و گذاشتن Index از هر نوع performance سیستم شما تا حد بسیار زیادی پایین میاد.
اگر بتونید تولید مقدار این فیلد رو از نوع تصادفی به نوع ساختاری تغییر بدین از این زمان به بعد میتونید اون select رو انجام بدین (البته اگر داخل یک برنامه داره این guid با مکانیسم خاصی تولید میشه باید براش کد بنویسید). البته اگر داخل این جدول از فیلد تاریخی استفاده کرده باشید میتونید بر اساس تاریخ 20 ردیف آخر اون جدول رو انتخاب کنید و دیگر نیازی به انتخاب بر اساس فیلد guid ندارید(این خیلی راخت تره:چشمک:).