PDA

View Full Version : سوال: كندي انجام عمليات روي جداول لينك شده



stabesh
سه شنبه 03 اسفند 1389, 13:02 عصر
با سلام به همه ي دوستان و اساتيد
من چند روزه يك مشكل جديد پيدا كردم يك كوئري دارم كه ساعات كاري رو ميگره و حقوق و بيمه و ماليات و ... آخر ماه حساب ميكنه اين كوئري خيلي كند بود ومن فكر ميكردم به خاطر اينه كه محاسبات زيادي انجام ميده اما امروز روي خود سرور اجرا كردم و كمتر از 5 ثانيه همه محاسبات رو انجام داد و من به اين نتيجه رسيدم كه مشكل از كوئري نيست بلكه ممكنه از تنظيمات sql server 2000 يا odbc يا شبكه باشه خيلي گشتم ولي راهاي پيشنهاد شده يا جواب نميداد يا متوجه نميشدم چكار ميكنه اگر لطف كنيد ومن را راهنمايي نماييد
جداول در sql server 2000 مي باشند و با access 2003 به وسيله ي ODBC به آنها متصل ميشم در ضمن در حالت معمولي مشكلي ندارم حتي با تعدادركورد بالا فقط وقتي محاسبات زياد باشه اينقدر كند ميشه
و لينكهاي زير رو خوندم اما ازشون سر در ياوردم
با تشكر
http://msdn.microsoft.com/en-us/library/bb188204%28v=sql.90%29.aspx
http://msdn.microsoft.com/en-us/library/ms811006.aspx
http://www.utteraccess.com/forum/Query-runs-slow-table-q-t1062474.html
http://www.pcreview.co.uk/forums/access-and-sql-server-odbc-t2600404.html
http://www.datadirect.com/resources/odbc/design2/manage-connection.html
http://www.datadirect.com/resources/odbc/design2/required-data.html
http://social.msdn.microsoft.com/Forums/en/sqldataaccess/thread/e9172699-dfcb-4d3e-8683-890db8b73987

stabesh
چهارشنبه 04 اسفند 1389, 08:40 صبح
با سلام
طبق گفته ي مايكروسافت براي كوئريهايي كه لازم نيست ازشون براي update , insert , delete استفاده كنيم و فقط جنبه ي محاسباتي يا جستجو دارند براي بالابردن كارايي به جاي اين كه recordset از نوع dynaset باشه بايد از نوع snapshot استفاده كرد من هم اين كار رو كردم سرعت خيلي بهتر شد ولي هنوز سرعت در كلاينتها كمتر از سرور هست ممكنه مشكل از شبكه باشه
متشكرم
http://msdn.microsoft.com/en-us/library/dd942824%28office.12%29.aspx#odc_ac2007_ta_Perform anceTipsToSpeedUpYourAccessDB_SQLServerAndODBCPerf ormanceTips
http://oreilly.com/catalog/progacdao/chapter/ch08.html#_Ref428875897
http://support.microsoft.com/kb/128808
http://www22.brinkster.com/accessory/wip.shtml
http://support.microsoft.com/kb/128385/EN-US

stabesh
چهارشنبه 04 اسفند 1389, 10:30 صبح
من پيكربندي ODBC رو هم نگاه كردم مثل خود مايكروسافت بود اصلا پيش فرضش رو عوض نكرده بودم
http://support.microsoft.com/kb/153756
http://msdn.microsoft.com/en-us/library/bb177636%28v=office.12%29.aspx
لطفا اگر ميدونيد راهنمايي كنيد

stabesh
جمعه 06 اسفند 1389, 14:33 عصر
با سلام
هیچکس این مشکلو تا به حال نداشته ؟
از کوئری Pass-Through هم نمیتونم استفاده کنم چون در کوئریم از توابع VBA استفاده میکنم نمیشه کوئریو سمت سرور اجرا کنم
تازه فقط این کوئری اینقدر کنده شاید چون تو در تو هست
بقیه کوئریها مثل برق کار میکنند
فکر میکنم کسی منو نمیبینه :افسرده::گریه:

RESMAILY
شنبه 07 اسفند 1389, 08:12 صبح
به نام خدا
با سلام. ولله ما هم اين مشكل را داريم. چندبار درخواست كرديم كه بحث شود فايده اي نداشت. من اخيرا متوجه شده ام كه در بسياري موارد اصلا موتور آكسس مدتي از كار مي افتد(علت كندي) و «نو ريسپاند » مي دهد. تازه شما مي گويي برخي از كويري ها مثل برق اجرا مي شود. ما كه...

stabesh
شنبه 07 اسفند 1389, 12:50 عصر
با سلام
ممنون که جواب دادید من خیلی گشتم چند تا تاپیک هم در msdn و چند تا فروم معتبر دیگه پیدا کردم ولی همه یا لینکهایی که در پستهای قبلی گذاشتم رو معرفی میکنند یا تاپیکها بی جواب مونده بهترین راه هم کوئری Pass-Through ولی باید از توابع VBA صرف نظر کرد :ناراحت:
باید بینشون یکی رو انتخاب کنم دارم دنبال این میگردم معادل توابع VBA در SQL server تعریف کنم اما مشکل اینجاست که خیلی SQL server بلد نیستم تا یاد بگیرم باید باهمین اکسس بسازیم

stabesh
شنبه 07 اسفند 1389, 14:48 عصر
بازم سلام
معادل توابع VBA در SQL server اگه دوستان لینک دیگه ای سراغ دارن لطفا بذارن
با تشکر
http://sqlserver2000.databases.aspfaq.com/what-are-the-main-differences-between-access-and-sql-server.html
http://www.databasejournal.com/features/msaccess/article.php/3865076/T-SQL-Equivalents-for-Microsoft-Access-VBA-Functions.htm
http://www.databasejournal.com/features/msaccess/article.php/3705151/Converting-Access-Queries-to-SQL-Server.htm

mazoolagh
دوشنبه 09 اسفند 1389, 21:33 عصر
حیف هست که از sql فقط بعنوان جایی برای نگهداری دیتا استفاده کنین بدون اینکه از تواناییهای کدنویسیش بهره ببرین.
یک کمی که وقت بگذارین و بیشتر باهاش آشنا بشین میبینین بهتر هست که کلا کدینگ کار با دیتا رو فقط سمت سرور انجام بدین.

وقتی شما پروسس رو با کد vba انجام میدین تمام رکوردهایی مورد نظر باید از سرور به کامپیوتر کلاینت منتقل بشن که بمعنای حجم زیادی از ترافیک شبکه است (خیلی راحت ممکنه به چند ده مگابایت برسه) در حالیکه نتیجه که شما میخواین ممکنه فقط یک جمع ساده باشه (مثال گفتم) و یک sp ساده با چند آرگومان ورودی و یک خروجی با ترافیک سرجمع در محدوده کیلوبایت همون نتیجه رو بهتون میده و این حداقل مزیتی هست که بدست میارین.

stabesh
سه شنبه 10 اسفند 1389, 11:49 صبح
سلام
دلیل اینکه مدیر ما علاقه بسیار زیادی به اکسس دارند اینه که در اکسس کوئری نوشتن خیلی راحتتر و سریع تره اگه قرار باشه کوئریهارو سمت سرور اجرا کنیم از اکسس فقط فرم و گزارش میمونه که فرمهارو میشه در net. طراحی کرد برای گزارش هم ابزارهای بهتری هست دیگه اکسس به چه دردی میخوره ؟
من باایشون صحبت کردم و گفتند فعلا همین جوری خوبه چون برنامه ها خیلی بهشون نیازه در آینده روی بهینه تر شدنش فکر کنید
البته کارمندای شرکت ما به کندی عادت دارند اینقدر ویروس و نرم افزار آشغال که نمیدونم از کجا میارند روی سیستمهاشون دارند که فقط با عوض کردن ویندوز سیستم دوباره درست کار میکنه البته برنامه هارو روی سیستمهای بخش خودمون اجرا میکنیم بخش ما بدون اجازه حق نصب نرم افزار ندارند آنتی ویروسامونم آپدیته
اگه میشه جواب این سئوالمو بدید چون حالا دیگه هیچ دلیلی برای استفاده از اکسس نمیبینم
با تشکر

stabesh
چهارشنبه 11 اسفند 1389, 08:00 صبح
سلام
نميدونم چرا اين لينكو امتحان نكرده بودم البته فقط يك ثانيه تاخير رو كم كرد :قهقهه:
http://support.microsoft.com/kb/208858/
tools-analyze -performance
هم 2 ثانيه تاخير كم شد در سمت كلاينت روي خود سرور كه فقط يك ثانيه تاخير كم شد

mazoolagh
جمعه 13 اسفند 1389, 23:06 عصر
سلام
دلیل اینکه مدیر ما علاقه بسیار زیادی به اکسس دارند اینه که در اکسس کوئری نوشتن خیلی راحتتر و سریع تره اگه قرار باشه کوئریهارو سمت سرور اجرا کنیم از اکسس فقط فرم و گزارش میمونه که فرمهارو میشه در net. طراحی کرد برای گزارش هم ابزارهای بهتری هست دیگه اکسس به چه دردی میخوره ؟
من باایشون صحبت کردم و گفتند فعلا همین جوری خوبه چون برنامه ها خیلی بهشون نیازه در آینده روی بهینه تر شدنش فکر کنید
البته کارمندای شرکت ما به کندی عادت دارند اینقدر ویروس و نرم افزار آشغال که نمیدونم از کجا میارند روی سیستمهاشون دارند که فقط با عوض کردن ویندوز سیستم دوباره درست کار میکنه البته برنامه هارو روی سیستمهای بخش خودمون اجرا میکنیم بخش ما بدون اجازه حق نصب نرم افزار ندارند آنتی ویروسامونم آپدیته
اگه میشه جواب این سئوالمو بدید چون حالا دیگه هیچ دلیلی برای استفاده از اکسس نمیبینم
با تشکر

اتفاقا قدرت اکسس در همین سرعت و سهولت طراحی فرم ها و گزارش های اون هست بخصوص وقتی فرمها bound باشن. ترکیب اینترفیس اکسس با دیتابیس sql از مزایای هر دو استفاده میکنه. کدنویسی sql محدود به کوئری هایی مشابه آن چه که در اکسس میسازین نیست و خیلی گسترده تر هست (stored procedure). تا پروسس رکوردها رو به سمت سرور منتقل نکنین مشکلتون برطرف نمیشه و این ارتباطی به این موضوع که از چه اینترفیسی استفاده میکنین (اکسس یا win app) نداره.

RESMAILY
شنبه 14 اسفند 1389, 07:56 صبح
به نام خدا
با سلام. ايا اگر بانك backend از نوع آكسس باشد هم مي توان پروسس ها يا دستكم برخي پروسس ها را در سمت سرور انجام داد؟

stabesh
شنبه 14 اسفند 1389, 13:23 عصر
اتفاقا قدرت اکسس در همین سرعت و سهولت طراحی فرم ها و گزارش های اون هست بخصوص وقتی فرمها bound باشن. ترکیب اینترفیس اکسس با دیتابیس sql از مزایای هر دو استفاده میکنه. کدنویسی sql محدود به کوئری هایی مشابه آن چه که در اکسس میسازین نیست و خیلی گسترده تر هست (stored procedure). تا پروسس رکوردها رو به سمت سرور منتقل نکنین مشکلتون برطرف نمیشه و این ارتباطی به این موضوع که از چه اینترفیسی استفاده میکنین (اکسس یا win app) نداره.
منظورم اين نبود كه به اينترفيس ربط داره يا نه منظورم اين بود درسته كه ساختن فرم و گزارش در اكسس راحتتر هست اما انعطاف پذيري زيادي ندارن شايد هم من اين قدر حرفه اي نيستم ولي اين حرفتونو قبول دارم تا كوئري در سمت سرور اجرا نشه سرعت كنده ولي ميخواستم تا جايي كه ممكنه اين تاخيرو كم كنم الان سرعت اون كوئري در سرور 3 ثانيه شده در كلاينتها 7 ثانيه ديگه قابل قبوله اما قبلا فاجعه بود
بازم از راهنماييهاتون ممنونم

mazoolagh
شنبه 14 اسفند 1389, 20:14 عصر
به نام خدا
با سلام. ايا اگر بانك backend از نوع آكسس باشد هم مي توان پروسس ها يا دستكم برخي پروسس ها را در سمت سرور انجام داد؟

نه - مگر اینکه web app داشته باشین که در این صورت تمامی پروسس در سمت سرور اجرا میشه

stabesh
شنبه 14 اسفند 1389, 20:45 عصر
دنبال راه حل که میگشتم بعضیها یک این مشکلو وقتیکه به sql server 2005 به بالا وصل میشدن داشتن واقعا درسته ؟
در جوابشون هم گفته بودن ODBC تونو از نوع SQL Server Native Client بسازید ولی باز هم میگفتن از 2000 کندتره واقعا همین طوره ؟
نداشتم تا امتحان کنم
متشکرم

RESMAILY
یک شنبه 15 اسفند 1389, 07:50 صبح
به نام خدا
با سلام

- مگر اینکه web app داشته باشین که در این صورت تمامی پروسس در سمت سرور اجرا میشه
سبحان الله! منظور از webapp چيست؟

mazoolagh
یک شنبه 15 اسفند 1389, 21:53 عصر
دنبال راه حل که میگشتم بعضیها یک این مشکلو وقتیکه به sql server 2005 به بالا وصل میشدن داشتن واقعا درسته ؟
در جوابشون هم گفته بودن ODBC تونو از نوع SQL Server Native Client بسازید ولی باز هم میگفتن از 2000 کندتره واقعا همین طوره ؟
نداشتم تا امتحان کنم
متشکرم

odbc اساسا کند هست و برای sql مطلقا نیازی بهش ندارین

mazoolagh
یک شنبه 15 اسفند 1389, 21:56 عصر
به نام خدا
با سلام

سبحان الله! منظور از webapp چيست؟

منظور برنامه ای هست که اینترفیس کاربریش مرورگر اینترنت هست و کل دیتابیس و برنامه ها سمت سرور قرار دارن. هیچ نیازی به نصب برنامه در سمت کاربر نیست (بجز همون مرورگر) و تمام فرمها و گزارشها چیزی صفحات اینترنتی نیستن.