منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : عملية ال INSERT بطيئة جدا
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2 3
(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.
(29-03-17, 01:31 AM)myalsailamy كتب : [ -> ]ليس لدي البرنامج الخاص بفتح قواعد البيانات  SQLLite  لذلك لا اعلم هل تم ادراج البيانات  بشكل صحيح  ام لا لان حجم ملف القاعدة  لا يتغير  ، على العموم عدلت بعض الاكواد و اصبح اسرع  بامكانك مراجعت الاكواد  و فهم ما قمت به  ، بالاضافة اذا ارد انت تتعامل مع اكثر من مهمه  بدون تعليق البرنامج ابحث عن جانب  Multi Thread في .Net  


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

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

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

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

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

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

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


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

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

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

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

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

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

شكرا من جديد
العفو اخي الفاضل

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

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

وجزاك الله خيرا أستاذنا حريف برمجة على الأداة المفيدة لقاعدة بيانات SqLite فسوف تفيدني كثيراً
(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 فسوف تفيدني كثيراً

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

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

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

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

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

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

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

http://bkqslmanager.com/WindowsApplication6.rar
(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
(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

 اتمنى احصل  حل جزاكم الله خير
غيرة في الكود 

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

كود :
                 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


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