PDA

View Full Version : ورود 100 میلیون رکورد در بانک



seyedmostafa
چهارشنبه 19 تیر 1387, 09:04 صبح
در یک برنامه سی شارپ و اس کیو ال که نوشته ام نیاز دارم 100 میلیون عدد رندوم درست شوند و در یک جدول دیتا بیسم که با اس کیو ال هست ریخته بشه حالا من برنامه آن را نوشته ام ولی مثلا 10 ساعت زمان لازم دارم کسی هست راهنمایی کنه که اینقدر زمان نیاز نباشد:عصبانی++: :عصبانی++: :عصبانی++:

shayesteh_bh
چهارشنبه 19 تیر 1387, 09:18 صبح
اگه درست متوجه شده باشم شما مي توانيد در جدول مورد نظر فيلدي از نوع int داشته باشيد كه Identity ان Yes باشد. در اين صورت كافيست موقع insert كردن در جدول به اين فيلد مقدار identity@@ را نسبت دهيد .خودش از 1 تا بينهايت (به تعداد ركوردهاي جدول) مقدار مي گيرد.

Xcalivorse
چهارشنبه 19 تیر 1387, 09:42 صبح
آخه سید جون صد میلیون رکورد که کم نیست. قربون جدت برم هر نرم افزاری رو برای کاری ساختند.
اگه Oracle هم بود کم می آورد. ما یه Cross Join ساده تو SQL می کنیم کلی طول می کشه چه برسه به وارد کردن 100 میلیون رکورد!!!! اونم رندوم !!!!!!!!!!
تنها کاری که می تونم بهت توصیه کنم اینه که در صورتی که فیلد مورد نظر را به هیچ عنوان به عنوان کلید در نظر نگیر و روش هم ایندکس گذاری نکن. چون ایندکس گذاری زمان وارد کردن اطلاعات و طولانی میکنه

seyedmostafa
چهارشنبه 19 تیر 1387, 09:43 صبح
شما درست متوجه و توجیه نشده اید لطفا یک بار دیگر سوال مرا با دقت بیشتری بخوانید

seyedmostafa
چهارشنبه 19 تیر 1387, 09:44 صبح
منظورم کاربری با نام شایسته بود

Xcalivorse
چهارشنبه 19 تیر 1387, 09:49 صبح
آقا مصطفی حالا برای چی می خواهی این کارو بکنی. بگو شاید یه راه حل بهتری به ذهنمون رسید. تو سایت برنامه نویس هیچ کی نباید با مشکل حل نشده بیرون بره.

seyedmostafa
چهارشنبه 19 تیر 1387, 09:59 صبح
راستیتش در حال نوشتن یک برنامه قرعه کشی برای یکی از بانکها هستم که اساس کارش اینه که مثلا هر 1000 تومان در هر روز یک امتیاز من آمده ام پس از محاسبه کردن امتیازات صاحب حساب ها نام هر فرد را به تعداد امتیازاتی که کسب کرده است به صورت رندم در بانک وارد کرده ام و سپس به صورت رندم یکی از آنها را انتخاب کرده ام تا از هر نظر اگر توانسته باشم عدالت علی را در این زمینه پیاده سازی کرده باشم

seyedmostafa
چهارشنبه 19 تیر 1387, 10:02 صبح
لطفا اگر کسی سوال قبلی منو جواب داد اگر توانست لطف دیگری هم بکند و بگوید بهترین الگوریتم برای نوشتن برنامه قرعه کشی در بانک های جمخوری اسلامی چیست

Xcalivorse
چهارشنبه 19 تیر 1387, 10:06 صبح
یعنی می خواهی بر حسب امتیاز شانس برنده شدن داشته باشن ؟

seyedmostafa
چهارشنبه 19 تیر 1387, 10:27 صبح
دقیقا همینه که شما میفرمائید

Xcalivorse
چهارشنبه 19 تیر 1387, 11:01 صبح
خوب می تونی از شماره حساب کاربران به همراه فیلدی دیگری که در اون محاسبه امتیاز اونها شده استفاده کنی. بدین صورت برای دسترسی به هر فرد از شماره حسابش به جای عدد رندم استفاده کن و در انتخاب اعضا هم فیلد امتیاز رو به عنوان یکی از مولفه های اولویت بندی شرکت بده. تازه اینطوری خیلی راحت تر می تونی رو برنامه مانور بدی. آقا سید ما رو دعا کن.

linux
چهارشنبه 19 تیر 1387, 11:02 صبح
راستیتش در حال نوشتن یک برنامه قرعه کشی برای یکی از بانکها هستم که اساس کارش اینه که مثلا هر 1000 تومان در هر روز یک امتیاز من آمده ام پس از محاسبه کردن امتیازات صاحب حساب ها نام هر فرد را به تعداد امتیازاتی که کسب کرده است به صورت رندم در بانک وارد کرده ام و سپس به صورت رندم یکی از آنها را انتخاب کرده ام تا از هر نظر اگر توانسته باشم عدالت علی را در این زمینه پیاده سازی کرده باشم
ذخیره کردن بصورت رندم در دیتابیس هیچ مشکلی از شما حل نمی کند.
در مورد الگوریتم کار هم باید از خودشان بخواهی که چطور می خواهند به جوایز را اختصاص دهند.
برای ورود اطلاعات به این صورت هم می توانید از bulk insert استفاده کنید. بعدش هم حتما این کار را با خود sp ها و از طریق sql انجام دهید منظورمن قسمت محاسبه امتیاز ها هست.

ezamnejad
چهارشنبه 19 تیر 1387, 11:11 صبح
لطفا اگر کسی سوال قبلی منو جواب داد اگر توانست لطف دیگری هم بکند و بگوید بهترین الگوریتم برای نوشتن برنامه قرعه کشی در بانک های جمخوری اسلامی چیست

نظر من اين است كه به شكل زير عمل كنيد . البته نظر شخصي من است و خيلي شايد دقيق نباشه .
يك راهي كه به نظر من ميرسه اينه كه ابتدا امتيازات را سطح بندي كنيد مثلا به 5 سطح تقسيم كنيد . حالا اگر سطح 5 را كم امتيازترين بدانيم ابتدا بين افراد سطح 5 قرعه كشي انجام بشه و يك تعدادي انتخاب بشوند بعد تعداد مشخص شده به سطح 4 اضافه شوند و دوباره قرعه كشي كنيد و همين مراحل را تا سطح 1 انجام بدهيد . با اين كار كساني كه در سطح يك قرار دارند بيشترين شانس را براي برنده شدن دارند و سطح 5 كمترين شانس چون 5 بار بايد قرعه كشي بشه .