PDA

View Full Version : سوال: سرعت بسيار پايين در گزارش گيري و يا اجراي يك كوري در نرم افزار اكسس كه ديتابيس ان sql است



ebadian
دوشنبه 18 فروردین 1393, 22:02 عصر
سلام به دليل مشكلات فراواني كه اكسس تحت شبكه براي استفاده همزمان چند يوزر وجود داشت عليرغن سرعت بالا در اجراي گزارشات ديتابيس اكسس رو به sql منتقل كردم و از طريق فرم هاي اكسس اطلاعات رو به ديتابيس منتقل ميكنم
مشكلي كه ايجاد شده سرعت بسيار پايين گاها تا بيش از 5 دقيقه گزارش گيري و يا اجراي كوري ها است كه قبلا اكثرا حداكثر در سي ثانيه اجرا ميشدند

ebadian
سه شنبه 19 فروردین 1393, 17:31 عصر
دوستان لطفا كمك كنيد

chiristian
جمعه 20 تیر 1393, 20:15 عصر
سلام
اولا از چه ورجن sql استفاده مي كنيد ، من رو 2008r2 كلي ديتا رو با روش شما كار كردم
و اينكه حجم فايل اكسس شما چقدر ؟
اگر زياده آيا اون رو compact and repair ;از منوي ديتابيس تولز كرديد يا خير ؟

byazdaani
پنج شنبه 16 مرداد 1393, 11:11 صبح
سلام
معمولا موارد زیادی رو میبینم که به فکر تغییر بانک از اکسس به sql هستن و دلیل رو هم پائین بودن سرعت عنوان میکنن.دوستان از نظر من افزایش سرعت با تغییر بانک آخرین کار ممکن در 95 درصد برنامه هست و قبل از اون موارد زیادی رو باید اصلاح کرد تا سرعت بالا بره. من خودم برنامه ای رو نوشتم که چند ساله مشغول کاره و شبکه هم دکله که از طریق میکروتک و موتورولا ارتباط برقراره و نتیجتا سرعت و پهنای باند هم محدوده مشکل سرعت نداریم. چرا؟ چون کلی نکته رو توش رعایت کردیم. در مورد بهینه کردن اکسس کلی مقاله و مطلب موجوده و به نظر من با رعایت اونها خیلی کم پیش میاد که نیاز به مهاجرت داشته باشید. به نظر من شما اول تمام فرمها رو بررسی کن و تا جایی که میتونی استفاده از کادر های کومبو رو به صفر برسون و بجاش از تکست باکس استفاده کن. تغییر سرعت رو به وضوح میبینی.مابقی نکات رو اگر در وب جستجو کنی پیدا میکنی. اگر فرصت کنم تاپیکی جهت بهینه کردن اکسس راه اندازی خواهم کرد.

ebadian
یک شنبه 09 شهریور 1393, 07:13 صبح
سلام
مشكل اصلي ما زمانيه كه نياز به گزارش گيري است كه سرعت گزارش گيري خيلي پايينه . اجراي كوئريها مشكلي از لحاظ سرعت ندارند ولي وقتي گزارشي كه از همان كوئري تغذيه ميشه اجرا ميشه سرعت خيلي پايين مياد

byazdaani
چهارشنبه 12 شهریور 1393, 08:53 صبح
کوئری ها کدوم سمت هستند؟ اکسس یا سرور؟چه تعداد رکورد رو باید برگردونه؟ جدولی که کوئری بر مبنای اونه چند رکورد داره؟از همه مهمتر از چه طریقی به SQL SERVER مرتبط شدی؟ ADP OR link؟ از َ ADO استفاده میکنی یا ODBC? یک سئوال دیگه که داشت یادم میرفت:کوئری بر مبنای چند جدوله؟

byazdaani
چهارشنبه 12 شهریور 1393, 09:00 صبح
کوئری ها کدوم سمت هستند؟ اکسس یا سرور؟چه تعداد رکورد رو باید برگردونه؟ جدولی که کوئری بر مبنای اونه چند رکورد داره؟از همه مهمتر از چه طریقی به SQL SERVER مرتبط شدی؟ ADP OR link؟ از َ ADO استفاده میکنی یا ODBC? یک سئوال دیگه که داشت یادم میرفت:کوئری بر مبنای چند جدوله؟

mosi_r
شنبه 15 شهریور 1393, 17:57 عصر
hاگه query هات درست و سریع اجرا میشه ولی Report ها کند هستن حتما مشکل در ساختن Report ها داری. تا جایی که میتونی عملیات محاسباتی رو در Query انجام بده و در Report استفاده نکن. و اینکه برای اجرا شده Report ها سعی کن از فیلتر استفاده کنی مثلا اجرای صد هزار رکورد در Report یکم زمان هست

Jalal_r63
یک شنبه 16 شهریور 1393, 11:21 صبح
بهتره که کوئری های مربوط به گزارشت رو توی SQL درست کنی ( همچنین Sort کردن داده هات رو چون خود Sort کردن زمان زیادی رو از سیستم می گیره )

byazdaani
پنج شنبه 27 شهریور 1393, 21:50 عصر
جواب سوالها رو ندادی تا بهتر کمکت کنم. در مورد استفاده از تکنیک shape و xml و Pass trough query در زمان گزارشگیری از sql تحقیق کن احتمال زیاد مشکلت حل میشه.

Rasool-GH
پنج شنبه 27 شهریور 1393, 22:26 عصر
با توجه به مباحثی که مطرح شده برداشت من اینه که کوئریها رو باید سمت سرور قرار داد و نهایتا نتیجه رو به سمت کاربر منتقل کرد
ایا برداشت من درسته ؟
در صورتی که این طور باشه . با توجه به این که امکان استفاده از کوئری مثل جدول به صورت لینک شده وجود نداره چطور باید از کوئری در فرم یا گزارش استفاده کرد ؟

byazdaani
شنبه 29 شهریور 1393, 22:31 عصر
با توجه به مباحثی که مطرح شده برداشت من اینه که کوئریها رو باید سمت سرور قرار داد و نهایتا نتیجه رو به سمت کاربر منتقل کرد
ایا برداشت من درسته ؟
در صورتی که این طور باشه . با توجه به این که امکان استفاده از کوئری مثل جدول به صورت لینک شده وجود نداره چطور باید از کوئری در فرم یا گزارش استفاده کرد ؟


دوست عزیز تکنیک هایی که در بالا بهش اشاره کردم دققا به خاطر همین موردی هست که شما بهش اشاره کردی. چواب شما همین تکنیک های بالاست. مخصوصا pass trough

Rasool-GH
یک شنبه 30 شهریور 1393, 12:11 عصر
در صورت امکان در مورد روش پیاده سازی این تکنیکها کمی توضیحات تکمیلی بدین ممنون

byazdaani
دوشنبه 31 شهریور 1393, 13:18 عصر
یکی از بهتر ین راههای کم کردن حجم ترافیک استفاده از sp ها میباشد که باعث بالارفتن سرعت هم خواهد شد. ولی sp رو مستقیما در سورس گزارش نمیتونید قرار بدهید.در صورتیکه در سورس گزارش از اسم یک pass thro کوئری استفاده کنید و در این کوری دستور exec spname را قرار دهید براحتی به مقصود میرسید. البته این یکی از این راههاست و با ado هم میتونید sp رو اجرا کرده و ترافیک رو پائین بیارید.

Rasool-GH
دوشنبه 31 شهریور 1393, 18:45 عصر
دستت درد نکنه زحمت کشیدی ولی اگه در سطح پایینتر بگید خیلی بهتره . البته شاید این که شما گفتید پایینترین حد باشه ولی من در این سطح اطلاعات و اشنایی ندارم . ممنون

byazdaani
سه شنبه 01 مهر 1393, 08:58 صبح
کدام قسمت رو مشکل دارین؟sp یا Pass Thtough کوئری رو؟

Rasool-GH
سه شنبه 01 مهر 1393, 13:00 عصر
sp رو نمیدونم چیه و در مورد
Pass Thtough هم که تازه دارم پیگیری میکنم

byazdaani
چهارشنبه 02 مهر 1393, 11:12 صبح
sp مخفف stored procedure میباشد. پیشنهاد میکنم اول کتابی در مورد sql server مطالعه کنید تا با این مفاهیم بهتر آشنا بشین. بعلت گستردگی توضیح در مورد این موارد در حوصله این تاپیک نیست و خودتون هم فکر میکنم راحت تر میتونید از روی کتاب نتیجه بگیرید. بصورت خلاصه اگر بخواهم بیان کنم sp حالت بسیار پیشرفته تر کوئری پارامتری اکسس بوده و مانند توابع و روالها پارامترهایی رو به عنوان شرط از شما پذیرفته و نتیجه رو یا مانند اکشن کوئری و یا اپند کوئری و یا بصورت یک رکوردست برمیگرداند. اگر این موارد رو مطالعه کنید پست اول من کمکتون میکنه.

Rasool-GH
چهارشنبه 02 مهر 1393, 12:47 عصر
خیلی ممنون بابت توضیحی که دادین . حتما مطالعه میکنم . ممنون