تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] عملية ال INSERT بطيئة جدا
#11
(29-03-17, 01:31 AM)myalsailamy كتب : ليس لدي البرنامج الخاص بفتح قواعد البيانات  SQLLite  لذلك لا اعلم هل تم ادراج البيانات  بشكل صحيح  ام لا لان حجم ملف القاعدة  لا يتغير  ، على العموم عدلت بعض الاكواد و اصبح اسرع  بامكانك مراجعت الاكواد  و فهم ما قمت به  ، بالاضافة اذا ارد انت تتعامل مع اكثر من مهمه  بدون تعليق البرنامج ابحث عن جانب  Multi Thread في .Net  


فقط قم باستبدال ملف  vb هذا FormADIimport.vb بالملف الجديد  ،، لان حجم المشروع كبير كمرفق  

Dear Muhammad Yahya, You can use this file to able create, modify and display your Sqlite database.


الملفات المرفقة
.rar   sqlitestudio-2.1.5.rar (الحجم : 4.05 م ب / التحميلات : 40)
الرد }}}
تم الشكر بواسطة: myalsailamy , dubai.eig , dubai.eig
#12
(29-03-17, 01:31 AM)myalsailamy كتب : ليس لدي البرنامج الخاص بفتح قواعد البيانات  SQLLite  لذلك لا اعلم هل تم ادراج البيانات  بشكل صحيح  ام لا لان حجم ملف القاعدة  لا يتغير  ، على العموم عدلت بعض الاكواد و اصبح اسرع  بامكانك مراجعت الاكواد  و فهم ما قمت به  ، بالاضافة اذا ارد انت تتعامل مع اكثر من مهمه  بدون تعليق البرنامج ابحث عن جانب  Multi Thread في .Net  


فقط قم باستبدال ملف  vb هذا FormADIimport.vb بالملف الجديد  ،، لان حجم المشروع كبير كمرفق  

ما شاءالله تبارك الله

ما شاءالله تبارك الله

ما شاءالله تبارك الله

سابقا كان ال 1000 في خمس دقائق الى 6 دقائق

الان بفضل الله ومجهودك ولمساتك 

اصبح ال 7000  في دقيقه ونص الى دقيقتين 


ما شاءالله تبارك الله

ما شاءالله تبارك الله

ما شاءالله تبارك الله

ما اعرف كيف اشكرك

جزاك الله الف الف الف خير وكثر من امثالك وفي ميزان اعمالك

ما نستغنى عنك Smile

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

و لكن باقي يعتبر بطيئ نسبياً بامكانك مراجعة المشاركة الاولى لي خصوصاً الملاحظه الاولى وهي عدم ربط الواجهه بداخل loop و الاستفاده من مبدأ multi thread أو backGroundWorker لتسريع العمليه اكثر و منع تهنيق الشاشه .
اسم معرفي : محمد يحيى
الرد }}}
تم الشكر بواسطة: dubai.eig
#14
الحمد لله

أسعدك الله أستاذنا myalsailamy كما أسعدت صاحب الموضوع

وجزاك الله خيرا أستاذنا حريف برمجة على الأداة المفيدة لقاعدة بيانات SqLite فسوف تفيدني كثيراً
الرد }}}
تم الشكر بواسطة: dubai.eig , myalsailamy
#15
(29-03-17, 03:09 PM)myalsailamy كتب : العفو  اخي الفاضل  

و لكن  باقي يعتبر  بطيئ نسبياً  بامكانك مراجعة  المشاركة الاولى لي  خصوصاً الملاحظه   الاولى  وهي عدم ربط الواجهه بداخل  loop  و الاستفاده من مبدأ multi thread  أو  backGroundWorker  لتسريع العمليه اكثر و منع تهنيق الشاشه  .

جعلتني اطمع بالمزيد Smile

كيف ممكن نستفيد من  multi thread  أو  backGroundWorker

وهل بيفيدني في عملية update table

لان عندي عملية update   كمان بطيئة واعلم المشكله في كتابة الكود

(29-03-17, 04:41 PM)مساعدة كتب : الحمد لله

أسعدك الله أستاذنا myalsailamy كما أسعدت صاحب الموضوع

وجزاك الله خيرا أستاذنا حريف برمجة على الأداة المفيدة لقاعدة بيانات SqLite فسوف تفيدني كثيراً

شكرا لك ايضا استاذ مساعدة دائما خدوم وتحب تساعد بارك الله فيك
الرد }}}
تم الشكر بواسطة:
#16
السلام عليكم

اخواني  
ممكن مساعدتي في الكود المرفق
هو عباره عن 

اقوم بارسال ملف الى موقعي وبعد الارسال اقوم بتحديث قاعدة البيانات في خانت 
clublog_qsl_sent
من N   الى Y
للجميع من قمت بارساله
   

الكود شغال يرسل الملف بس وقت التحديث يكون بطئ

انا حاولت احط كود اخي [b]myalsailamy  في البرنامج بس ما ضبط  اكيد محتاج لمسات بسيطه [/b]

جزاكم الله الف خير

واسمحولي اذا كان الملف كبير شويه لا اعرف لماذا اعتقد عندما انزل package System.Data.SQLite.Core

http://bkqslmanager.com/WindowsApplication6.rar
الرد }}}
تم الشكر بواسطة:
#17
(30-03-17, 03:47 AM)dubai.eig كتب : السلام عليكم

اخواني 


ممكن مساعدتي في الكود المرفق
هو عباره عن 

اقوم بارسال ملف الى موقعي وبعد الارسال اقوم بتحديث قاعدة البيانات في خانت 
clublog_qsl_sent
من N   الى Y
للجميع من قمت بارساله


الكود شغال يرسل الملف بس وقت التحديث يكون بطئ

انا حاولت احط كود اخي [b]myalsailamy  في البرنامج بس ما ضبط  اكيد محتاج لمسات بسيطه [/b]

جزاكم الله الف خير

واسمحولي اذا كان الملف كبير شويه لا اعرف لماذا اعتقد عندما انزل package System.Data.SQLite.Core

http://bkqslmanager.com/WindowsApplication6.rar

السلام عليكم

جربت اني اتلاعب في الكود واشتغل

ويقوم بالتحديث

بس عندما  يحدث عدد كبير من يوصل الى رقم 
10258

يعلق ويعطيني مسج 

كود :
10258 | Start Add :30:00
A first chance exception of type 'System.NullReferenceException' occurred in BKLog.exe
SQLite error (5): database is locked
SQLite error (5): database is locked
SQLite error (5): database is locked
SQLite error (5): database is locked


وهذا الكود

كود :
                           ProgressBar1.Maximum = Me.DataGridView1.Rows.Count - 1
                           cn.Open()

                           Dim index As Integer = 0
                           Using transaction = cn.BeginTransaction()
                               'cmdCheckCount.Transaction = transaction
                               cmdInsert.Transaction = transaction
                               For i = 0 To DataGridView1.RowCount - 1
                                   ProgressBar1.Value = index
                                   Label4.Text = InsertedCount
                                   'Label5.Text = ErrorCount
                                   Call Me.addData(index)
                                   index += 1
                               Next
                               transaction.Commit()
                           End Using


انا قمت بتغيير 

كود :
  For Each txtLine As String In ms


الى

كود :
For i = 0 To DataGridView1.RowCount - 1
الرد }}}
تم الشكر بواسطة:
#18
(30-03-17, 06:21 PM)dubai.eig كتب :
(30-03-17, 03:47 AM)dubai.eig كتب : السلام عليكم

اخواني 


ممكن مساعدتي في الكود المرفق
هو عباره عن 

اقوم بارسال ملف الى موقعي وبعد الارسال اقوم بتحديث قاعدة البيانات في خانت 
clublog_qsl_sent
من N   الى Y
للجميع من قمت بارساله


الكود شغال يرسل الملف بس وقت التحديث يكون بطئ

انا حاولت احط كود اخي [b]myalsailamy  في البرنامج بس ما ضبط  اكيد محتاج لمسات بسيطه [/b]

جزاكم الله الف خير

واسمحولي اذا كان الملف كبير شويه لا اعرف لماذا اعتقد عندما انزل package System.Data.SQLite.Core

http://bkqslmanager.com/WindowsApplication6.rar

السلام عليكم

جربت اني اتلاعب في الكود واشتغل

ويقوم بالتحديث

بس عندما  يحدث عدد كبير من يوصل الى رقم 
10258

يعلق ويعطيني مسج 

كود :
10258 | Start Add :30:00
A first chance exception of type 'System.NullReferenceException' occurred in BKLog.exe
SQLite error (5): database is locked
SQLite error (5): database is locked
SQLite error (5): database is locked
SQLite error (5): database is locked


وهذا الكود

كود :
                           ProgressBar1.Maximum = Me.DataGridView1.Rows.Count - 1
                           cn.Open()

                           Dim index As Integer = 0
                           Using transaction = cn.BeginTransaction()
                               'cmdCheckCount.Transaction = transaction
                               cmdInsert.Transaction = transaction
                               For i = 0 To DataGridView1.RowCount - 1
                                   ProgressBar1.Value = index
                                   Label4.Text = InsertedCount
                                   'Label5.Text = ErrorCount
                                   Call Me.addData(index)
                                   index += 1
                               Next
                               transaction.Commit()
                           End Using


انا قمت بتغيير 

كود :
  For Each txtLine As String In ms


الى

كود :
For i = 0 To DataGridView1.RowCount - 1

 اتمنى احصل  حل جزاكم الله خير
الرد }}}
تم الشكر بواسطة:
#19
غيرة في الكود 

ومن امس وانا اعمل بحث عن المشكله

كود :
                 ProgressBar1.Maximum = Me.DataGridView1.Rows.Count - 1
                           con.Open()

                           Dim i As Integer = 0
                           Using transaction = con.BeginTransaction()
                               'cmdCheckCount.Transaction = transaction
                               cmdInsert.Transaction = transaction
                               For Each dr As DataGridViewRow In DataGridView1.Rows

                                   ProgressBar1.Value = i
                                   Label6.Text = InsertedCount
                                   'Label5.Text = ErrorCount
                                   Call Me.addData(i)
                                   i += 1
                               Next
                               transaction.Commit()
                           End Using


كود :
  Private Sub addData(ByVal i As Integer)

       Diagnostics.Debug.Print(i.ToString & " | " & "Start Add :" & Now.ToString("mm:ssss"))
   


       cmdInsert.Parameters("@clublog_qsl_sent").Value = "Y"

       cmdInsert.Parameters("@CALLop").Value = DataGridView1.Rows(i).Cells(0).Value
       cmdInsert.Parameters("@DateNumber").Value = DataGridView1.Rows(i).Cells(4).Value
       cmdInsert.Parameters("@time_on").Value = DataGridView1.Rows(i).Cells(5).Value


       cmdInsert.ExecuteNonQuery()
       Application.DoEvents()
       InsertedCount += 1



   End Sub



ولازالت المشكله

اذا العدد كان 100 الى 800 سجل يقوم بتحديثه بنجاح

بس اذا كان عدد السجل التحديثي فوق  

10222  وما فوق يعطيني مسج

كود :
10457 | Start Add :59:57
10458 | Start Add :59:57
10459 | Start Add :59:57
10460 | Start Add :59:57
SQLite error (5): database is locked
SQLite error (5): database is locked
SQLite error (5): database is locked
SQLite error (5): database is locked
SQLite error (5): database is locked
SQLite error (5): database is locked
SQLite error (5): database is locked


كود :
10230 | Start Add :54:02
10231 | Start Add :54:02
10232 | Start Add :54:02
10233 | Start Add :54:02
SQLite error (5): database is locked
SQLite error (5): database is locked
SQLite error (5): database is locked
SQLite error (5): database is locked
SQLite error (5): database is locked
SQLite error (5): database is locked


مشكله غريبه  حتى في البحث في قوقيل ما حصلت حل مناسب
الرد }}}
تم الشكر بواسطة:
#20
كل محاولاتي كانت أبطأ مما توصلتم إليه،
يبدو أن السبب في محرك بيانات SQLite قد تكون هي أساساً ليست سريعة، ولهذا هي ليست مخصصة للإستخدام الضخم من البيانات.
الرد }}}
تم الشكر بواسطة: dubai.eig


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  سؤال عن عملية حذف سجل من قاعدة البيانات assuhimi 3 264 11-02-24, 08:43 PM
آخر رد: assuhimi
Heart [C#.NET] حول بطئ عملية نقل البينات الكثيرة من أكسس إلى داتا غريد فيو بلال بلال 11 723 15-12-23, 07:47 AM
آخر رد: foad8920
  [VB.NET] Datagridview Slow حركة بطيئة waataanys 1 299 20-11-23, 04:33 PM
آخر رد: justforit
  [VB.NET] ناتج عملية الطرح للأرقام الشعرية خطا عبدالله الصافي 3 404 27-09-23, 11:01 AM
آخر رد: قناص المدينة
  عملية حسابية خاصة محمد خيري 6 521 22-08-23, 09:09 AM
آخر رد: مصمم هاوي
  [VB.NET] ما الخطا فى كود insert Asabry 45 a 6 709 18-01-23, 08:24 PM
آخر رد: Asabry 45 a
  ماهى عملية الضرب داخل sql حماده ممدوح البحيرى 5 838 18-12-22, 01:00 PM
آخر رد: Taha Okla
  تحديد الصف بعد عملية التحديث محمد اسماعيل 4 2,991 02-10-22, 12:50 PM
آخر رد: رضوان الجماعي
Question [سؤال] تعبئة TreeView مع جود اكثر من عملية بحث ادخل جدوالين alims 1 1,874 22-05-22, 07:51 PM
آخر رد: samo123456
  [VB.NET] Bulk Insert records and Update existing rows if record exists using from datagridview failasouf 0 711 16-04-22, 05:04 PM
آخر رد: failasouf

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


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم