PDA

View Full Version : افزایش سرعت نرم افزار ضمیمه



jaza_sa
یک شنبه 24 شهریور 1387, 15:10 عصر
سلام
حتمی بارها براتون اتفاق افتاده که بخواید اطلاعات رو از یک فایل متنی یا اکسل یا چیزی شبیه به این بخونید ، دستور مثلا Insert رو بسازید و در Sql Server اجراش کنید.
من یه همچین نرم افزاری نوشتم ، ولی یه مشکلی داره ، اونم سرعتشه
برای تبدیل متن به دستور insert ، برای 25000 هزار رکورد ، تقریبا 80 ثانیه زمان میبره
چطور میتونم این مدت زمان رو کاهش بدم
فایل زمینه حاوی برنامه (T-SQL) و یک sample هست
ممنون میشم اگر تستش کنید و نقاط ضعفش رو بهم بگید

با تشکر

jaza_sa
سه شنبه 26 شهریور 1387, 20:33 عصر
دوستان کسی میتونه در این زمینه کمکی کنه ؟!!!

رضا عربلو
سه شنبه 26 شهریور 1387, 22:04 عصر
اگر تنها می خواهید داده های جدید را در جدول ثبت کنید. SQLBulkCopy سرعتش فوق العاده است.
http://www.codeproject.com/KB/database/SqlBulkCopy.aspx

jaza_sa
چهارشنبه 27 شهریور 1387, 13:51 عصر
اگر تنها می خواهید داده های جدید را در جدول ثبت کنید. SQLBulkCopy سرعتش فوق العاده است.
http://www.codeproject.com/KB/database/SqlBulkCopy.aspx

خیلی ممنون
فکر کنم باید بیشتر توضیح بدم،
این برنامه کار string.Format رو انجام میده اما به صورت پویا برای N ستون و N ردیف
دیگه نیاز نیست تک تک ردیف ها رو بصورت دستی بیایم و فرمت کنیم.
این برنامه میاد و هر ردیف رو بر اساس تب ('t\') جدا میکنه (split) و در یک آرایه میریزه و اون رو فرمت میکنه و به یک متغیر string اضافه میکنه
بعد از اتمام فرمت ، اونرو در قسمت result نمایش میده

حالا نمیدونم آیا SQLBulkCopy اینجا کاربرد داره یا نه ؟
ممنون میشم اگر راهنماییم کنید ...

رضا عربلو
چهارشنبه 27 شهریور 1387, 15:05 عصر
1 - اولاً با توجه به اینکه کارهای زیادی با متغییر های نوع string ات انجام می دهی سعی کن از نوع StringBuilder استفاده کنی؟
2 - با استفاده از SQLBulkCopy دیگر لازم نیست Datatable ات را بصورت دستورا INSERT در بیاوری. مستقیماً DataTable ات را بهش پاس می دهی.