نمایش نتایج 1 تا 3 از 3

نام تاپیک: زمان طولانی هنگام وارد کردن داده به SQL (چطوری سرعت Insert رو افزایش بدم؟)

  1. #1

    زمان طولانی هنگام وارد کردن داده به SQL (چطوری سرعت Insert رو افزایش بدم؟)

    با سلام .
    من یه حلقه ی For دارم که میاد و Insert رو انجام میده . به توصیه یکی از دوستان کانکشن رو بیرون حلقه باز و بسته کردم . ولی بازم هنگام وارد کردن داده به ازای 1500 بار اجرای حلقه 20 ثانیه طول میکشه!!!!! راه حل بهتری وجود داره ؟

    کد ها رو میزارم .




    /////////////////تبدیل تاریخ میلادی به شمسی////////////////


    public string MiladiToShamsi(DateTime _date)
    {
    PersianCalendar pc = new PersianCalendar();
    StringBuilder sb = new StringBuilder();
    sb.Append(pc.GetYear(_date).ToString("0000"));
    sb.Append("/");
    sb.Append(pc.GetMonth(_date).ToString("00"));
    sb.Append("/");
    sb.Append(pc.GetDayOfMonth(_date).ToString("00"));
    return sb.ToString();




    }
    //////////////////گرفتن تاریخ شروع و پایان////////////////////


    string PreventiveId = dataGridView1.CurrentRow.Cells["PreventiveId"].Value.ToString();
    int period = Convert.ToInt32(dataGridView1.CurrentRow.Cells["PeriodDay"].Value.ToString());
    string startDate =shamsitomiladi( txtDateBegin.Text);
    string endDate =shamsitomiladi( txtDateEnd.Text);
    DateTime dtStart = DateTime.Parse(startDate);
    DateTime dtEnd = DateTime.Parse(endDate);
    PersianCalendar pc = new PersianCalendar();
    sconnection = new SqlConnection();
    sconnection.ConnectionString = PM.Properties.Settings.Default.ConPM;
    if (sconnection.State == ConnectionState.Closed)
    {
    sconnection.Open();
    }
    for (DateTime nextdate = dtStart; nextdate <= dtEnd; nextdate = pc.AddDays(nextdate, period))
    {
    string Insert2 = "Insert into TblPreventiveDay values ('{0}','{1}','{2}','{3}')";
    string shamsi = MiladiToShamsi(nextdate);
    Insert2 = string.Format(Insert2, PreventiveId, shamsi, 0, 0);
    Function.DoDml2(Insert2, sconnection);
    }
    sconnection.Close();
    MessageBox.Show("پیشگیرانه طی دوره روزانه ایجاد شد");


    ////////////////////////////////////////////////////////


    public static void DoDml2(string Query,SqlConnection con)
    {
    SqlCommand cmd = new SqlCommand(Query, con);
    cmd.ExecuteNonQuery();


    }




  2. #2

    نقل قول: زمان طولانی هنگام وارد کردن داده به SQL (چطوری سرعت Insert رو افزایش بدم؟)

    برای Insert کردن چند رکورد باهم از Bulk Insert استفاده کنید : http://www.c-sharpcorner.com/blogs/i...-c-sharp-code1
    اگر از ORM هایی مثل EF و یا Dapper هم استفاده میکنید میتونید از ZZZProject استفاده کنید که سرعت Bulk Insert بسیار خوبی داره .

  3. #3
    کاربر دائمی آواتار mz6488
    تاریخ عضویت
    تیر 1391
    محل زندگی
    قشم
    پست
    429

    نقل قول: زمان طولانی هنگام وارد کردن داده به SQL (چطوری سرعت Insert رو افزایش بدم؟)


    insert into table (col1,col2,...) values (a1,a2,..),(b1,b2,...),...

تاپیک های مشابه

  1. خطا در هنگام اضافه کردن رکورد به SQL Server
    نوشته شده توسط ashkan209 در بخش VB.NET
    پاسخ: 0
    آخرین پست: شنبه 28 خرداد 1390, 19:27 عصر
  2. سوال: ارور هنگام وارد کردن اطلاعات به database
    نوشته شده توسط mehrdad85 در بخش ASP.NET Web Forms
    پاسخ: 3
    آخرین پست: دوشنبه 16 اسفند 1389, 16:39 عصر
  3. آموزش: مدت زمان طولانی هنگام login کردن به سرور
    نوشته شده توسط iran_sky در بخش شبکه و Networking‌
    پاسخ: 2
    آخرین پست: شنبه 15 آبان 1389, 11:11 صبح
  4. سوال: دریافت اطلاعات از فایل excel و وارد کردن آن به sql database
    نوشته شده توسط L_eskandary در بخش C#‎‎
    پاسخ: 3
    آخرین پست: چهارشنبه 24 شهریور 1389, 00:39 صبح
  5. پاسخ: 15
    آخرین پست: سه شنبه 17 خرداد 1384, 18:10 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •