ايران ويج

نسخه‌ی کامل: کمک در شمردن تعداد رکوردهای زیاد با شرط
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
با سلام
دوستان من یه جدول دارم که روزانه سه هزار رکورد بهش اضافه میشه بعد میخواستم این تعداد رو بر اساس ستون تاریخی که در جدول دارم بشمارم حالا یه مثال میزنم که بیشتر متوجه بشید
DATEADD -- ----- - -- - - -ID

132-- -- -- - - - - - - -2013/05/07
133----- - -- - - - - -- 2013/05/08
134 -- - - - - -- - - - - 2013/05/08
135- -- - - - - - - - - 2013/05/08
حالا شما فکر کنید ما میخوایم رکوردهایی رو بشماریم که تاریخشون امروز باشه و ااینکار رو هم هر 20 ثانیه که رکوردهامون اضافه میشه انجام بدیم از روالهای ذخیره شده استفاده می کنم و دستور COUNT میخواستم از شما دوستان بپرسم راه حل بهتری برای شمارش این تعداد زیاد ندارید؟
من نمي دونم ساختار بانك شما به چه شكلي هست اما در هر صورت انجام هر عمل ساده اي در بانكي با تعداد چند صد هزار

ركورد هميشه با كندي خاصي روبه رو هست. مي تونيد براي بانكتون ايندكس تعريف كنيد يا حتي يك جدول تمپ مثل جدول اصلي

بسازيد كه ابتدا ركوردها داخل اون ذخيره بشن و در انتهاي هر روز همه اونها رو به جدول اصلي منتقل كنيد،‌ اين كار زماني سودمند

هست كه طبق مثالي كه زديد بخواهيد ركوردهاي ثبت شده امروز رو مورد جستجو قرار بديد.

همچنين مي تونيد يك تيبل جديد مثلا به نام RowCounter داخل بانك ايجاد كنيد كه داراي فيلدهاي Date و RowNo‌باشه

سپس با ساخت يك تابع در برنامه يا از طريق يك تريگر كار كنيد كه هر زمان كه ركورد جديد در بانك ايجاد مي شه،‌ در جدول

RowCounter‌ ركوردي با تاريخ اون روز رو پيدا كنه و به فيلد RowNo يكي اضافه كنه و هر زمان كه تعداد ركوردها رو خواستيد

از اين جدول استفاده كنيد.
سلام آقا من یه سوال دیگه هم داشتم اگه بخوام اطلاعات رو به صورت زنده نمایش بدم تنها راهش استفاده از همون تایمره؟یا راه دیگه ای هم هست که وقتی فیلدی توی دیتابی تغییر میکنه مقدارش هم بصورت اتوماتیک در برنامه تغییر کنه
من متوجه سوال شما نشدم؟ اگر منظورت اينه كه مي خواي تعداد ركوردها رو در يك جايي مثلا روي يك تكست باكس يا ...

نمايش بدي ،‌خوب همون تابعي كه قبلا نوشته بودي براي آپديت جدول،‌بهش يه خط كد اضافه كن كه اون تكست باكس رو هم

آپديت كنه!

اگر سوالت غير از اين هست لطفا بيشتر توضيح بده.
مرسی که جواب میدی
بیشتر توضیح میدم پروژه ی من شامل دو تا برنامه هست یکی که وظیفش ثبت اطلاعات هست و توی خط تولید نصب میشه و دومی هم روی کلاینتهای شبکه برای نمایش اطلاعات،حالا من میخوام یه راه حل برای نمایش لحظه ای تعداد روی نرم افزار دوم که روی کلاینتها نصب میشه بهم پیشنهاد بدید،خودم فقط راه حل تایمر مد نظرم هست ولی میترسم سرور نابود شه بدلیل درخواست زیاد
خوب اين بستگي به قدرت سرور، پهناي باند ، تعداد كلاينتها، ميزان اهميت آپديت بودن كلاينتها و .... داره و بايد با توجه به عامل

محدود كننده ات بهترين راه رو انتخاب كنيد

هر چند استفاده از يك تايمر 5 دقيقه اي و قرار دادن دكمه به روز رساني به طور همزمان مي تونه بهترين گزينه باشه اما راه حل هاي

ديگه اي مثل يك برنامه ثانويه بر روي سرور كه فقط وظيفه اش خواندن ركوردها از ديتابيس و فرستادن آپديت براي كلاينتهاست

ويا استفاده از يك سرور مياني كه اون بانك RowCounter‌روش قرار داره و كلاينتها براي آپديت شدن به اون مراجعه كنن

و يا ايجاد يك تونل يا پراكسي كه تنها براي آپديت كلاينتها استفاده مي شه و اختصاص مثلا 20% پهناي باند به اون راه حل هاي

ديگه اي هستند كه براي محدوديت هاي مختلفي مثل پهناي باند، پردازنده سرور و يا تعداد كلاينت ها مي تونن مفيد باشن.
سلام

اگر میخواهید ارتباط با اس کیو ال سرور رو کم کنید پیشنهاد من استفاه از وب سرویس ها هست .


یک وب سرویس روی سرور راه بندازین که هر کدوم از کلاینتها در لحظه تغییر اطلاعات ،این سرویس رو احظار بکنن و این سرویس باعث تغییر تو فایل بشه که نشان دهنده نیاز به آپدیت اطلاعات مانیتور ها است .

هر چند تو این روش هم باید همیشه با سرور در ارتباط باشین ولی دیگه هزینه ارتباط با دیتابیس حذف میشه .

من از این روش برای راه انداختن سیستم چت بین دفاتر شرکت در سطح کشور استفاده کردم که 18 تا سرور 18 تا سرویس فعال رو دارن و میتونیم از این طریق باهم در ارتباط باشیم .

اطلاعات بیشتر در مورد وب سرویس
نقل قول: http://fa.wikipedia.org/wiki/وب‌سرویس
(۱۸-اردیبهشت-۱۳۹۲, ۱۳:۱۹:۴۲)Di Di نوشته است: [ -> ]من نمي دونم ساختار بانك شما به چه شكلي هست اما در هر صورت انجام هر عمل ساده اي در بانكي با تعداد چند صد هزار

ركورد هميشه با كندي خاصي روبه رو هست. مي تونيد براي بانكتون ايندكس تعريف كنيد يا حتي يك جدول تمپ مثل جدول اصلي

بسازيد كه ابتدا ركوردها داخل اون ذخيره بشن و در انتهاي هر روز همه اونها رو به جدول اصلي منتقل كنيد،‌ اين كار زماني سودمند

هست كه طبق مثالي كه زديد بخواهيد ركوردهاي ثبت شده امروز رو مورد جستجو قرار بديد.

همچنين مي تونيد يك تيبل جديد مثلا به نام RowCounter داخل بانك ايجاد كنيد كه داراي فيلدهاي Date و RowNo‌باشه

سپس با ساخت يك تابع در برنامه يا از طريق يك تريگر كار كنيد كه هر زمان كه ركورد جديد در بانك ايجاد مي شه،‌ در جدول

RowCounter‌ ركوردي با تاريخ اون روز رو پيدا كنه و به فيلد RowNo يكي اضافه كنه و هر زمان كه تعداد ركوردها رو خواستيد

از اين جدول استفاده كنيد.


سلام .ببخشید من میخواستم پر ببینده ها به جدول ا
م اضافه کنم.باید مثل پاسخ شما برم...میشه یه کم راهنمایی کنید ..ممنون میشم.
اگه بیشتر توضیح بدید احتمالا بتونم کمکتون کنم
(۱۹-اردیبهشت-۱۳۹۴, ۲۲:۵۹:۱۹)Di Di نوشته است: [ -> ]اگه بیشتر توضیح بدید احتمالا بتونم کمکتون کنم

من یه جدول اخبار دارم،حالا میخوام یه صفحه ای داشته باشم که پرببینده ترین اخبار رو نشون بده،در جدول اخبار یه فیلد در نظر میگیرم مثلا بنام fldNewsFull از نوع int و در پروسیجر باید بنویسم هروقت که دستور select انجام شد به فیلد fldNewsFull یکی اضافه بشه.این دستور پروسیجر رو چه جوری بنویسم..ممنون میشم کدشو بنویسید.بازم ممنون