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

بالنسبه للكود و عند قرائتي له  ، أول خطأ يسبب ببطأ الاكواد  التعامل المباشر مع الواجهه  بداخل Loop  و  ما اقصده  هو هذه الجزئيه

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

الاحرى أن تضعه  في متغير  رقمي  و في نهاية الكود يعرض الناتج  في التكس بوك ، و لكن اثناء  Loop  لا افضل ذلك و بامكانك  تجربة ذلك  و حساب الوقت  الذي سيتغرقه التعامل مع الواجهه مباشره بداخل Loop  (تجربه شخصيه) خصوصاً اذا كانت  مواصفات الجهاز  قديمه

ثانياً  لماذا تكرار تعريف جملة الاستعلام بهذا الشكل

     cmd.Parameters.AddWithValue("@LON", colLON.Trim())

غير منطقي تماماً  ،،  يمكنك ببساطه كتابته كالتالي  :  


       Dim cmd As New SqlCommand(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.Add("@CALLop")
       cmd.Parameters.Add("@qso_date")
       cmd.Parameters.Add("@timek")
       cmd.Parameters.Add("@bands")
       cmd.Parameters.Add("@modes")


       ' Start Loop
       cmd.Parameters("@CALLop").Value = colcall.Trim()
       cmd.Parameters("@qso_date").Value = bkd.Trim()
       cmd.Parameters("@timek").Value = timek.Trim()
       cmd.Parameters("@bands").Value = colbands.Trim()
       cmd.Parameters("@modes").Value = colmodes.Trim()
       cmd.ExecuteNonQuery()
       ' End Loop

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

ثالثاً ربما انت قمت بوضع  try  ويحدث خطأ بمعالجة البيانات  و في كل مره يحدث خطأ يستنزف وقت التنفيذ  ، لذلك وجب عليك الغاء اي تصيد للاخطأ و محاول تصحيح اي بيانات تسبب مشكلة  .

رابعاً : البيانات التي تقوم بجلبها كنص ،  يعني  40000 سجل ليست بالامر الهين خصوصا اذا كان مواصفات جهازك قديمه  قد تسبب نوعاً من  كرش  عند جلبها دفعه واحده في الذاكرة

بالنسبه للكود الذي قمت  بارساله  وهي  ميزه  الغاء اجراءات التي حدثت داخل transaction   واحد  ، بمعنى لو حصل خطأ في اضافة البيانات  و هذه البيانات تعتمد  عليها بيانات  قبلها  فانه بامكانك هنا من خلال هذه الخاصيه  التراجع  عن الكل  الاضافة السابقه  ، قمت بشرحه بشكل مبسط في هذا الموضوع سابقاً

http://vb4arb.com/vb/showthread.php?tid=17881

و لكنه خلال كلماته  يذكر بان البيانات  تبقى معلقه بحيث لا تضاف الى قاعدة البيانات  مباشره  لذلك تعتبر اسرع بحيث انه يقوم باضافة جميع البيانات  ثم يعمل Commit و هي تأكيد بالتنفيذ  و الاعتماد بقاعدة البيانات  ، اعتقد انها ربما تكون منطقيه  ، بامكانك تجربته  ، وهذا هو الكود بعد تحويله  

' Creates new sqlite database if it is not found
Using conn = New SQLiteConnection("Data Source=C:\Projects\sqlite\test.sqlite")
' Be sure you already created the Person Table!
conn.Open()
Using cmd = New SQLiteCommand(conn)
Using transaction = conn.BeginTransaction()
' 100,000 inserts
For i As var = 0 To 999999
cmd.CommandText = "INSERT INTO Person (FirstName, LastName) VALUES ('John', 'Doe');"
cmd.ExecuteNonQuery()
Next
transaction.Commit()
End Using
End Using
conn.Close()
End Using


أيضا اود ان تختصر  قليلاً بالكود فلماذا تستعلم  اذا كان موجود  أو لا  ثم ترسل استعلام جديد يضيف البيانات  ، فانا لا اعلم  ان  كانت  SQLite تدعم  او لا ، لكن لا مانع ان تقرأ هذا الموضوع  

http://vb4arb.com/vb/showthread.php?tid=14259
اسم معرفي : محمد يحيى
الرد }}}
تم الشكر بواسطة: dubai.eig , abdualla , sendbad100


الردود في هذا الموضوع
عملية ال 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 352 04-01-25, 03:56 PM
آخر رد: صالح عبدالله
  لايمكن الوصول للملف لأنه قيد الاستخدام بواسطة عملية أخرى صالح عبدالله 3 325 24-12-24, 12:17 AM
آخر رد: صالح عبدالله
  المساعدة في عملية طرح الوقت من خلال اثنين textbox جيولوجي مبتدئ 9 2,762 06-08-24, 07:43 PM
آخر رد: خالد كامل1
  سؤال عن عملية حذف سجل من قاعدة البيانات assuhimi 3 803 11-02-24, 08:43 PM
آخر رد: assuhimi
Heart [C#.NET] حول بطئ عملية نقل البينات الكثيرة من أكسس إلى داتا غريد فيو بلال بلال 11 1,550 15-12-23, 07:47 AM
آخر رد: foad8920
  [VB.NET] Datagridview Slow حركة بطيئة waataanys 1 491 20-11-23, 04:33 PM
آخر رد: justforit
  [VB.NET] ناتج عملية الطرح للأرقام الشعرية خطا عبدالله الصافي 3 671 27-09-23, 11:01 AM
آخر رد: قناص المدينة
  عملية حسابية خاصة محمد خيري 6 849 22-08-23, 09:09 AM
آخر رد: مصمم هاوي
  [VB.NET] ما الخطا فى كود insert Asabry 45 a 6 1,036 18-01-23, 08:24 PM
آخر رد: Asabry 45 a
  ماهى عملية الضرب داخل sql حماده ممدوح البحيرى 5 1,211 18-12-22, 01:00 PM
آخر رد: Taha Okla

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


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