PDA

View Full Version : طریقه ی ساختن index از طریق کدنویسی در برنامه



hamid-nic
یک شنبه 05 مهر 1388, 18:25 عصر
سلام دوستان
من با مشکل کاهش سرعت در برنامه به دلیل زیاد بودن رکورد ها مواجه شدم بدلیل نمایش در dbgrid یا جست و جو و یا گزارش گیری یا بدست آوردن تعداد کل رکورد ها و مواردی از این قبیل . متوجه شدم که باید از طریق ایندکس گذاری اقدام کنم . حالا دوستان من به چه شکلی این کار را انجام دهم . (دلفی 7 و Sql Server 2000 )
در ضمن برای نمایش در dbgrid برای محدود کردن دامنه ی نمایش از Adoquery استفاده کردم .

hadisalahi2
یک شنبه 05 مهر 1388, 18:41 عصر
شما میتونید برای اینکار از دستور Creat Index اس کیو ال استفاده کنید.
اگه همین کلمات رو جستجو کنید ، فکر کنم جواب سوالتون رو پیدا کنید.در ضمن با استفاده استفاده از دستورات SQL فرقی نداره که شما از چه بانک اطلاعاتی استفاده میکنید.
یا حق

hamid-nic
یک شنبه 05 مهر 1388, 19:04 عصر
شما میتونید برای اینکار از دستور Creat Index اس کیو ال استفاده کنید.
اگه همین کلمات رو جستجو کنید ، فکر کنم جواب سوالتون رو پیدا کنید.در ضمن با استفاده استفاده از دستورات SQL فرقی نداره که شما از چه بانک اطلاعاتی استفاده میکنید.
یا حق

دوست عزیز من جست و جو کردم ولی . . .
ببینید من دستور ایندکس را دارم :


CREATE INDEX <name>
ON <table_or_view>(<index _Columns>)
خوب این را از طریق Adoquery ارسال می کنم
اما چه موقع باید ارسال کرد ؟
آیا همیشه وقتی خواستیم کاری (از موارد ذکر شده در پست 1 ) انجام بدهیم باید این کار را بکنیم . یا اینکه فقط اول برنامه یا .......... ؟؟؟؟؟؟؟؟؟
راستی اصلا باید از همین دستور استفاده کرد !:متفکر:

hadisalahi2
یک شنبه 05 مهر 1388, 23:06 عصر
با سلام.
دوست عزیز اگه از بانک اطلاعاتی SQl Server استفاده میکنید ، اصلا احتیاجی به ساختن ایندکس ندارید، چون خود بانک اطلاعاتی این کار رو براتون انجام میده و ایندکس رو بر اساس فیلد شاخص ایجاد میکنه.
برای مدیریت یا ایجاد ایندکس جدید هم میتونید در SqlServer بر روی یک جدول راست کلیک کرده و از قسمت All Tasks گزینه Manage Indexes رو انتخاب کنید.
ولی در کل بله با همین دستور باید شاخص ایجاد کرد.
زمان ایجادش هم بستگی به نظر طراح بانک اطلاعاتی و یا برنامه نویس داره.
پیشنهاد میکنم در هنگامی که قرار تراکنش زیادی روی جداول اجرا بشه قبلا اقدام به ایجاد شاخص کنید.
البته در صورتی که جداول شما دارای فیلد کلیدی باشند ، احتیاجی به ایجاد ایندکس ندارید.
زیرا همون ایندکس ایجاد شده برمبنای کلید اصلی سرعت کار با جداول رو تا حد بسیار بالایی بالا میبره.
یا حق

hamid-nic
یک شنبه 05 مهر 1388, 23:59 عصر
خیلی ممنون از پاسخ کاملتون
چون من از فیلد کلیدی استفاده کردم پس دیگر نیازی به انجام این کار نیست .