تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] عملية ال INSERT بطيئة جدا
#1
اهلا بكم

انا اتعامل مع SQLite

في عملية ال INSERT  
حاولت انزل  40000 سجل في قاعدة البيانات

وعند التنزيل ياخذ مني تقريبا 3 ساعات  او اكثر

عملت بحث في النت واتضح لي بان هناك اكواد او طريقة كتابة الكود تساعد على تسريع التنزيل

الكود اللي اعمل عليه 

كود :
Dim cmdi As New SQLiteCommand(String.Format(" SELECT COUNT(*) FROM DB{0} WHERE CALLop = @CALLop  and   DateNumber = @DateNumber  and  time_on = @time_on", strcallbk), con)
       cmdi.Parameters.AddWithValue("@CALLop", colcall.Trim())
       cmdi.Parameters.AddWithValue("@DateNumber", qso_date.Trim())
       cmdi.Parameters.AddWithValue("@time_on", coltimex.Trim())

       If cmdi.ExecuteScalar = 0 Then
           Dim cmd As New SQLiteCommand(String.Format("INSERT INTO DB{0} (CALLop,qso_date,timek,bands,modes,Lfullname,station_callsign,dxcc,cqz,ituz,rst_sent,rst_rcvd,lotw_qsl_sent,lotw_qsl_rcvd,eqsl_qsl_sent,eqsl_qsl_rcvd,qsl_sent,qsl_rcvd,qsl_sent_date,qsl_print,country,qth,LAT,LON,GRIDSQUARE,Lqslmgr,PFX,freq,DateNumber,iota,bk_qsl_sent,time_on,state,operato,nameop,Continent,hamqth_qsl_sent,clublog_qsl_sent) Values (@CALLop,@qso_date,@timek,@bands,@modes,@Lfullname,@station_callsign,@dxcc,@cqz,@ituz,@rst_sent,@rst_rcvd,@lotw_qsl_sent,@lotw_qsl_rcvd,@eqsl_qsl_sent,@eqsl_qsl_rcvd,@qsl_sent,@qsl_rcvd,@qsl_sent_date,@qsl_print,@country,@qth,@LAT,@LON,@GRIDSQUARE,@Lqslmgr,@PFX,@freq,@DateNumber,@iota,@bk_qsl_sent,@time_on,@state,@operato,@nameop,@Continent,@hamqth_qsl_sent,@clublog_qsl_sent)", strcallbk), con)
           cmd.Parameters.AddWithValue("@CALLop", colcall.Trim())
           cmd.Parameters.AddWithValue("@qso_date", bkd.Trim())
           cmd.Parameters.AddWithValue("@timek", timek.Trim())
           cmd.Parameters.AddWithValue("@bands", colbands.Trim())
           cmd.Parameters.AddWithValue("@modes", colmodes.Trim())
           cmd.Parameters.AddWithValue("@Lfullname", colLfullname.Trim())
           cmd.Parameters.AddWithValue("@station_callsign", colstation_callsign.Trim())
           cmd.Parameters.AddWithValue("@dxcc", coldxcc.Trim())
           cmd.Parameters.AddWithValue("@cqz", colcqz.Trim())
           cmd.Parameters.AddWithValue("@ituz", colituz.Trim())
           cmd.Parameters.AddWithValue("@rst_sent", colrst_sent.Trim())
           cmd.Parameters.AddWithValue("@rst_rcvd", colrst_rcvd.Trim())
           cmd.Parameters.AddWithValue("@lotw_qsl_sent", collotw_qsl_sent.Trim())
           cmd.Parameters.AddWithValue("@lotw_qsl_rcvd", collotw_qsl_rcvd.Trim())
           cmd.Parameters.AddWithValue("@eqsl_qsl_sent", coleqsl_qsl_sent.Trim())
           cmd.Parameters.AddWithValue("@eqsl_qsl_rcvd", coleqsl_qsl_rcvd.Trim())
           cmd.Parameters.AddWithValue("@qsl_sent", colqsl_sent.Trim())
           cmd.Parameters.AddWithValue("@qsl_rcvd", colqsl_rcvd.Trim())
           cmd.Parameters.AddWithValue("@qsl_sent_date", colqsl_sent_date.Trim())
           cmd.Parameters.AddWithValue("@qsl_print", colqsl_print.Trim())
           cmd.Parameters.AddWithValue("@country", colcountry.Trim())
           cmd.Parameters.AddWithValue("@qth", colqth.Trim())
           cmd.Parameters.AddWithValue("@LAT", colLAT.Trim())
           cmd.Parameters.AddWithValue("@LON", colLON.Trim())
           cmd.Parameters.AddWithValue("@GRIDSQUARE", colGRIDSQUARE.Trim())
           cmd.Parameters.AddWithValue("@Lqslmgr", colLqslmgr.Trim())
           cmd.Parameters.AddWithValue("@PFX", colPFX.Trim())
           cmd.Parameters.AddWithValue("@freq", colfreq.Trim())
           cmd.Parameters.AddWithValue("@DateNumber", qso_date.Trim())
           cmd.Parameters.AddWithValue("@iota", coliota.Trim())
           cmd.Parameters.AddWithValue("@bk_qsl_sent", bk_qsl_sent.Trim())
           cmd.Parameters.AddWithValue("@time_on", coltime_on.Trim())
           cmd.Parameters.AddWithValue("@state", state.Trim())
           cmd.Parameters.AddWithValue("@operato", operato.Trim())
           cmd.Parameters.AddWithValue("@nameop", nameop.Trim())
           cmd.Parameters.AddWithValue("@Continent", Continent.Trim())

           cmd.Parameters.AddWithValue("@clublog_qsl_sent", clublog_qsl_sent.Trim())
           cmd.Parameters.AddWithValue("@hamqth_qsl_sent", hamqth_qsl_sent.Trim())
           cmd.ExecuteNonQuery()
           cmd.Dispose()


           Label1.Text = Val(Label1.Text) + 1
       Else

           Label5.Text = Val(Label5.Text) + 1

       End If


هنا يتحقق من القاعد هل السجل موجود او غير موجود
كود :
Dim cmdi As New SQLiteCommand(String.Format(" SELECT COUNT(*) FROM DB{0} WHERE CALLop = @CALLop  and   DateNumber = @DateNumber  and  time_on = @time_on", strcallbk), con)
       cmdi.Parameters.AddWithValue("@CALLop", colcall.Trim())
       cmdi.Parameters.AddWithValue("@DateNumber", qso_date.Trim())
       cmdi.Parameters.AddWithValue("@time_on", coltimex.Trim())

اذا غير موجود يقوم بتنزيله

كود :
       If cmdi.ExecuteScalar = 0 Then
           Dim cmd As New SQLiteCommand(String.Format("INSERT INTO DB{0} (CALLop,qso_date,timek,bands,modes,Lfullname,station_callsign,dxcc,cqz,ituz,rst_sent,rst_rcvd,lotw_qsl_sent,lotw_qsl_rcvd,eqsl_qsl_sent,eqsl_qsl_rcvd,qsl_sent,qsl_rcvd,qsl_sent_date,qsl_print,country,qth,LAT,LON,GRIDSQUARE,Lqslmgr,PFX,freq,DateNumber,iota,bk_qsl_sent,time_on,state,operato,nameop,Continent,hamqth_qsl_sent,clublog_qsl_sent) Values (@CALLop,@qso_date,@timek,@bands,@modes,@Lfullname,@station_callsign,@dxcc,@cqz,@ituz,@rst_sent,@rst_rcvd,@lotw_qsl_sent,@lotw_qsl_rcvd,@eqsl_qsl_sent,@eqsl_qsl_rcvd,@qsl_sent,@qsl_rcvd,@qsl_sent_date,@qsl_print,@country,@qth,@LAT,@LON,@GRIDSQUARE,@Lqslmgr,@PFX,@freq,@DateNumber,@iota,@bk_qsl_sent,@time_on,@state,@operato,@nameop,@Continent,@hamqth_qsl_sent,@clublog_qsl_sent)", strcallbk), con)
           cmd.Parameters.AddWithValue("@CALLop", colcall.Trim())
           cmd.Parameters.AddWithValue("@qso_date", bkd.Trim())
           cmd.Parameters.AddWithValue("@timek", timek.Trim())
           cmd.Parameters.AddWithValue("@bands", colbands.Trim())
           cmd.Parameters.AddWithValue("@modes", colmodes.Trim())
           cmd.Parameters.AddWithValue("@Lfullname", colLfullname.Trim())
           cmd.Parameters.AddWithValue("@station_callsign", colstation_callsign.Trim())
           cmd.Parameters.AddWithValue("@dxcc", coldxcc.Trim())
           cmd.Parameters.AddWithValue("@cqz", colcqz.Trim())
           cmd.Parameters.AddWithValue("@ituz", colituz.Trim())
           cmd.Parameters.AddWithValue("@rst_sent", colrst_sent.Trim())
           cmd.Parameters.AddWithValue("@rst_rcvd", colrst_rcvd.Trim())
           cmd.Parameters.AddWithValue("@lotw_qsl_sent", collotw_qsl_sent.Trim())
           cmd.Parameters.AddWithValue("@lotw_qsl_rcvd", collotw_qsl_rcvd.Trim())
           cmd.Parameters.AddWithValue("@eqsl_qsl_sent", coleqsl_qsl_sent.Trim())
           cmd.Parameters.AddWithValue("@eqsl_qsl_rcvd", coleqsl_qsl_rcvd.Trim())
           cmd.Parameters.AddWithValue("@qsl_sent", colqsl_sent.Trim())
           cmd.Parameters.AddWithValue("@qsl_rcvd", colqsl_rcvd.Trim())
           cmd.Parameters.AddWithValue("@qsl_sent_date", colqsl_sent_date.Trim())
           cmd.Parameters.AddWithValue("@qsl_print", colqsl_print.Trim())
           cmd.Parameters.AddWithValue("@country", colcountry.Trim())
           cmd.Parameters.AddWithValue("@qth", colqth.Trim())
           cmd.Parameters.AddWithValue("@LAT", colLAT.Trim())
           cmd.Parameters.AddWithValue("@LON", colLON.Trim())
           cmd.Parameters.AddWithValue("@GRIDSQUARE", colGRIDSQUARE.Trim())
           cmd.Parameters.AddWithValue("@Lqslmgr", colLqslmgr.Trim())
           cmd.Parameters.AddWithValue("@PFX", colPFX.Trim())
           cmd.Parameters.AddWithValue("@freq", colfreq.Trim())
           cmd.Parameters.AddWithValue("@DateNumber", qso_date.Trim())
           cmd.Parameters.AddWithValue("@iota", coliota.Trim())
           cmd.Parameters.AddWithValue("@bk_qsl_sent", bk_qsl_sent.Trim())
           cmd.Parameters.AddWithValue("@time_on", coltime_on.Trim())
           cmd.Parameters.AddWithValue("@state", state.Trim())
           cmd.Parameters.AddWithValue("@operato", operato.Trim())
           cmd.Parameters.AddWithValue("@nameop", nameop.Trim())
           cmd.Parameters.AddWithValue("@Continent", Continent.Trim())

           cmd.Parameters.AddWithValue("@clublog_qsl_sent", clublog_qsl_sent.Trim())
           cmd.Parameters.AddWithValue("@hamqth_qsl_sent", hamqth_qsl_sent.Trim())
           cmd.ExecuteNonQuery()
           cmd.Dispose()


           Label1.Text = Val(Label1.Text) + 1


واذا موجود يقوم بتعدي وعدم انزاله


كود :
       Else

           Label5.Text = Val(Label5.Text) + 1

       End If


طبعا هنا يحسب لي عدد اللي تم انزاله وعدد اللي لم يتم انزاله

كود :
           Label1.Text = Val(Label1.Text) + 1
       Else

           Label5.Text = Val(Label5.Text) + 1

       End If


السؤال الان

هل الكود صحيح للعلم هو شغال ومافي اي مشكله
بس مشكلته البطئ في التنزيل

هل في طريقة اخرى كود اخر

من عمليات البحث حصلت هذا الموضوع والكود التالي
https://www.jokecamp.com/blog/make-your-...fast-in-c/

بس مع الاسف هو C#

وما عرفت اجربة في VB.NET



شكرا على المساعدة لان فعلا الموضوع مهم جدا لي
الرد }}}
تم الشكر بواسطة:


الردود في هذا الموضوع
عملية ال INSERT بطيئة جدا - بواسطة dubai.eig - 28-03-17, 02:24 AM
RE: عملية ال INSERT بطيئة جدا - بواسطة myalsailamy - 28-03-17, 10:23 AM
RE: عملية ال INSERT بطيئة جدا - بواسطة dubai.eig - 28-03-17, 12:37 PM
RE: عملية ال INSERT بطيئة جدا - بواسطة abdualla - 28-03-17, 01:35 PM
RE: عملية ال INSERT بطيئة جدا - بواسطة dubai.eig - 28-03-17, 03:59 PM
RE: عملية ال INSERT بطيئة جدا - بواسطة dubai.eig - 28-03-17, 09:48 PM
RE: عملية ال INSERT بطيئة جدا - بواسطة dubai.eig - 28-03-17, 11:31 PM
RE: عملية ال INSERT بطيئة جدا - بواسطة myalsailamy - 29-03-17, 01:31 AM
RE: عملية ال INSERT بطيئة جدا - بواسطة dubai.eig - 29-03-17, 01:46 PM
RE: عملية ال INSERT بطيئة جدا - بواسطة myalsailamy - 29-03-17, 03:09 PM
RE: عملية ال INSERT بطيئة جدا - بواسطة dubai.eig - 29-03-17, 06:30 PM
RE: عملية ال INSERT بطيئة جدا - بواسطة dubai.eig - 30-03-17, 03:47 AM
RE: عملية ال INSERT بطيئة جدا - بواسطة dubai.eig - 30-03-17, 06:21 PM
RE: عملية ال INSERT بطيئة جدا - بواسطة dubai.eig - 31-03-17, 02:33 PM
RE: عملية ال INSERT بطيئة جدا - بواسطة dubai.eig - 31-03-17, 08:05 PM
RE: عملية ال INSERT بطيئة جدا - بواسطة dubai.eig - 31-03-17, 08:44 PM
RE: عملية ال INSERT بطيئة جدا - بواسطة dubai.eig - 01-04-17, 02:29 PM
RE: عملية ال INSERT بطيئة جدا - بواسطة dubai.eig - 01-04-17, 07:08 PM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  القيام بعملية Insert بعد التأكد من عدم وجود السجل بالجدول صالح عبدالله 2 354 04-01-25, 03:56 PM
آخر رد: صالح عبدالله
  لايمكن الوصول للملف لأنه قيد الاستخدام بواسطة عملية أخرى صالح عبدالله 3 332 24-12-24, 12:17 AM
آخر رد: صالح عبدالله
  المساعدة في عملية طرح الوقت من خلال اثنين textbox جيولوجي مبتدئ 9 2,773 06-08-24, 07:43 PM
آخر رد: خالد كامل1
  سؤال عن عملية حذف سجل من قاعدة البيانات assuhimi 3 805 11-02-24, 08:43 PM
آخر رد: assuhimi
Heart [C#.NET] حول بطئ عملية نقل البينات الكثيرة من أكسس إلى داتا غريد فيو بلال بلال 11 1,557 15-12-23, 07:47 AM
آخر رد: foad8920
  [VB.NET] Datagridview Slow حركة بطيئة waataanys 1 494 20-11-23, 04:33 PM
آخر رد: justforit
  [VB.NET] ناتج عملية الطرح للأرقام الشعرية خطا عبدالله الصافي 3 671 27-09-23, 11:01 AM
آخر رد: قناص المدينة
  عملية حسابية خاصة محمد خيري 6 854 22-08-23, 09:09 AM
آخر رد: مصمم هاوي
  [VB.NET] ما الخطا فى كود insert Asabry 45 a 6 1,038 18-01-23, 08:24 PM
آخر رد: Asabry 45 a
  ماهى عملية الضرب داخل sql حماده ممدوح البحيرى 5 1,215 18-12-22, 01:00 PM
آخر رد: Taha Okla

التنقل السريع :


يقوم بقرائة الموضوع: