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

نام تاپیک: آیا یک بار بازکردن دیتابیس در تمام عملیات مناسب است؟

  1. #1

    آیا یک بار بازکردن دیتابیس در تمام عملیات مناسب است؟

    با سلام
    فرض کنید در برنامه ای که نوشته شده چند فرم داریم که در هر کدام از این فرم ها چند دکمه وجود دارد که با زدن هر دکمه جدول های بانک اطلاعات فراخوانی و عملیاتی بر روی آنها اجرا می شود.
    حال سوال اینجاست که سرعت فرایند کدام روش بیشتر است. وقتی پروژه باز میشود بانک اطلاعات را باز می کنیم و عملیات را بر روی جداول اجرا و در پایان فرم (یا پروژه) بانک اطلاعات را ببندیم یا اینکه برای هر اجرا (دکمه) بانک را بازکنیم عملیات را بر روی جدول انجام سپس ببندیم و برای دکمه بعدی هم این عملیات تکرار شود.
    در حالت اول بخشی از حافظه به بازنگهداشتن بانک اطلاعات اختصاص می‌یابد و در حالت دوم هربار فراخوانی بانک زمانی را به خود اختصاص می دهد.
    باتشکر

  2. #2
    مدیر بخش آواتار gilsoft
    تاریخ عضویت
    آبان 1386
    محل زندگی
    رشت
    پست
    753

    نقل قول: آیا یک بار بازکردن دیتابیس در تمام عملیات مناسب است؟

    نقل قول نوشته شده توسط f_seyrafian مشاهده تاپیک
    با سلام
    فرض کنید در برنامه ای که نوشته شده چند فرم داریم که در هر کدام از این فرم ها چند دکمه وجود دارد که با زدن هر دکمه جدول های بانک اطلاعات فراخوانی و عملیاتی بر روی آنها اجرا می شود.
    حال سوال اینجاست که سرعت فرایند کدام روش بیشتر است. وقتی پروژه باز میشود بانک اطلاعات را باز می کنیم و عملیات را بر روی جداول اجرا و در پایان فرم (یا پروژه) بانک اطلاعات را ببندیم یا اینکه برای هر اجرا (دکمه) بانک را بازکنیم عملیات را بر روی جدول انجام سپس ببندیم و برای دکمه بعدی هم این عملیات تکرار شود.
    در حالت اول بخشی از حافظه به بازنگهداشتن بانک اطلاعات اختصاص می‌یابد و در حالت دوم هربار فراخوانی بانک زمانی را به خود اختصاص می دهد.
    باتشکر
    سلام دوست عزیز

    از نظر من حالت دوم مناسب تره .. (خودم از حالت دوم استفاده می‌کنم )

    پیشنهاد می‌کنم در مورد کپسوله سازی تحقیق و مطالعه کنید ....
    قوانین سایت برنامه نویس [به هیچ عنوان از طریق پیام خصوصی به سوالات پاسخ داده نمی‌شود.]
    حمید محرابی

    چون وا نمیکنی گِره‌ای خود گِره مّشو / ابرو گشاده باش چو دستت گشاده نیست

  3. #3

    نقل قول: آیا یک بار بازکردن دیتابیس در تمام عملیات مناسب است؟

    با سلام و تشکر از پاسخ شما
    تعریف کلاس ها و مدول ها (کپسوله کردن) را برای هر دو روش می توان به کار برد، در روش دوم چنانچه برنامه تحت شبکه باشد هر بار بخواهیم به بانک اطلاعات (سرور اصلی) وصل بشیم کلی طول میکشه اما از طرفی هم سرور به محض اینکه اطلاعات (رکورد، ...) خودش را به کلایت داد ارتباط اطلاعات قطع میشه و از تراکم کاربران شبکه کم میشه (افزایش کارایی و سرعت سرور)
    حال تو حالت اول یک بار وصل میشیم بعد دیگه فقط از سرور استفاده می کنیم فقط این موضوع پیش میاد که سرور مشغوله
    توی تعداد زیاد بانک اطلاعاتی روش دوم خوبه
    اما توی تعداد بانک اطلاعات کم فکر کنم روش اول بهتر باشه
    نمی دانم این خیلی مهم که وقتی سرور را باز کردیم فضایی برای داده ها دوباره اشغال میشه یا فقط زمان فراخوانی رکورد ها به اندازه همان رکوردهای فراخوانی شده حافظه اشغال میشود که با بستن دیتاست یا دیتاریدر این مشکا حل میشه




    PublicClassForm1
    Dim my_cn AsNew SqlConnection
    Dim my_cm AsNew SqlCommand
    Dim dr As SqlDataReader
    Dim path AsString
    Dim strcon AsString
    path = "server=(local);database=mydatabase;integrated security=false;" _
    & "Persist Security Info=true;User ID=----;Password=-----"
    my_cn.ConnectionString = path
    my_cn.Open()
    PrivateSub Button1_Click(sender AsObject, e As EventArgs) Handles Button1.Click
    strcon = "select id from tb where a1 like a2"
    my_cm.CommandText = strcon
    my_cm.Connection = my_cn
    dr = my_cm.ExecuteReader
    dr.read()
    dim a3 as string=dr("id").ToString
    dr.close
    strcon = "select id from tb where b1 like b2"
    my_cm.CommandText = strcon
    my_cm.Connection = my_cn
    dr = my_cm.ExecuteReader
    dr.read()
    dim b3 as string=dr("id").ToString
    dr.close
    EndSub
    PrivateSub Button2_Click(sender AsObject, e As EventArgs) Handles Button2.Click
    strcon = "select id from tb2 where a1 like a2"
    my_cm.CommandText = strcon
    my_cm.Connection = my_cn
    dr = my_cm.ExecuteReader
    dr.read()
    dim c3 as string=dr("id").ToString
    dr.close
    strcon = "select id from tb2 where b1 like b2"
    my_cm.CommandText = strcon
    my_cm.Connection = my_cn
    dr = my_cm.ExecuteReader
    dr.read()
    dim d3 as string=dr("id").ToString
    dr.close
    EndSub
    my_cm = Nothing
    my_cn.Close()
    my_cn = Nothing
    end class
    یا
    PublicClassForm1
    PrivateSub Button1_Click(sender AsObject, e As EventArgs) Handles Button1.Click
    Dim my_cn AsNew SqlConnection
    Dim my_cm AsNew SqlCommand
    Dim dr As SqlDataReader
    Dim path AsString
    Dim strcon AsString
    path = "server=(local);database=mydatabase;integrated security=false;" _
    & "Persist Security Info=true;User ID=----;Password=-----"
    my_cn.ConnectionString = path
    my_cn.Open()
    strcon = "select id from tb where a1 like a2"
    my_cm.CommandText = strcon
    my_cm.Connection = my_cn
    dr = my_cm.ExecuteReader
    dr.read()
    dim a3 as string=dr("id").ToString
    dr.close
    strcon = "select id from tb where b1 like b2"
    my_cm.CommandText = strcon
    my_cm.Connection = my_cn
    dr = my_cm.ExecuteReader
    dr.read()
    dim b3 as string=dr("id").ToString
    dr.close
    my_cm = Nothing
    my_cn.Close()
    my_cn = Nothing
    EndSub
    PrivateSub Button2_Click(sender AsObject, e As EventArgs) Handles Button2.Click
    Dim my_cn AsNew SqlConnection
    Dim my_cm AsNew SqlCommand
    Dim dr As SqlDataReader
    Dim path AsString
    Dim strcon AsString
    path = "server=(local);database=mydatabase;integrated security=false;" _
    & "Persist Security Info=true;User ID=----;Password=-----"
    my_cn.ConnectionString = path
    my_cn.Open()
    my_cn.ConnectionString = path
    my_cn.Open()
    strcon = "select id from tb2 where a1 like a2"
    my_cm.CommandText = strcon
    my_cm.Connection = my_cn
    dr = my_cm.ExecuteReader
    dr.read()
    dim c3 as string=dr("id").ToString
    dr.close
    strcon = "select id from tb2 where b1 like b2"
    my_cm.CommandText = strcon
    my_cm.Connection = my_cn
    dr = my_cm.ExecuteReader
    dr.read()
    dim d3 as string=dr("id").ToString
    dr.close
    my_cm = Nothing
    my_cn.Close()
    my_cn = Nothing
    EndSub
    end class

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

  1. سوال: محل صحیح قرار گیری دیتابیس پروژه کجاست؟
    نوشته شده توسط omiditc در بخش C#‎‎
    پاسخ: 3
    آخرین پست: شنبه 22 تیر 1392, 11:48 صبح
  2. بهترین دیتابیس تک کاربره کدام است؟
    نوشته شده توسط aidin110 در بخش تحلیل و طراحی بانک اطلاعات
    پاسخ: 2
    آخرین پست: دوشنبه 02 بهمن 1391, 23:13 عصر
  3. پاسخ: 3
    آخرین پست: چهارشنبه 18 خرداد 1390, 13:36 عصر
  4. سوال: ذخیره کردن رشته ای در دیتابیس که دارای بد کاراکتر هست؟
    نوشته شده توسط kienshien در بخش C#‎‎
    پاسخ: 1
    آخرین پست: سه شنبه 23 فروردین 1390, 22:05 عصر

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

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