سلام
یک جدول دارم که کلید اصلی آن رندوم تولید میشه guid
چطور می توان با دانستن کلید یک رکورد مقدار رکورد بعدی را بدست آورد
یا
چطور می توان گفت سلکت کن 20 رکورد را از جایی که کلید آن مثلا 1254Fd54 است
سلام
یک جدول دارم که کلید اصلی آن رندوم تولید میشه guid
چطور می توان با دانستن کلید یک رکورد مقدار رکورد بعدی را بدست آورد
یا
چطور می توان گفت سلکت کن 20 رکورد را از جایی که کلید آن مثلا 1254Fd54 است
چون guid مرتب شده نیست باید یک rownumber بزارید و ایدی مورد نظر select کنید و با گرفتن row ان میتونید where بزارید مابین rownumber ها
برای جدولهای کوچک راه حل شما درست هست ولی من بیش از سه تریلیون رکورد داخل این جدول ذخیره کردم . آیا هیچ را هی وجود دارد که با استفاده از کلاستر ایندکس این جدول رکوردها را پیدا کنیم
یک ستون با قابلیت مرتب سازی نیاز دارید. حتی برای ایجاد rownumber هم به چنین ستونی نیاز هست.
مگر اینکه هر بار تعدادی از سطرها را بخواهید دریافت کنید که با select top و except حل میشه.
چون guid به روش تصادفی تولید میشه امکان مرتب سازی بر اساس اون و گذاشتن Index از هر نوع performance سیستم شما تا حد بسیار زیادی پایین میاد.
اگر بتونید تولید مقدار این فیلد رو از نوع تصادفی به نوع ساختاری تغییر بدین از این زمان به بعد میتونید اون select رو انجام بدین (البته اگر داخل یک برنامه داره این guid با مکانیسم خاصی تولید میشه باید براش کد بنویسید). البته اگر داخل این جدول از فیلد تاریخی استفاده کرده باشید میتونید بر اساس تاریخ 20 ردیف آخر اون جدول رو انتخاب کنید و دیگر نیازی به انتخاب بر اساس فیلد guid ندارید(این خیلی راخت تره).