PDA

View Full Version : بهینه سازی دریافت داده های چندین دیتابیس



hamzehsh
جمعه 12 دی 1399, 19:58 عصر
سلام
من دارم اطلاعاتی از db های مختلف به وسیله SP دریافت میکنم. این db ها توی سروهای مختلفی هستند که تعدادشون هم کم نیست.
روش مناسبی برای دریافت این داده ها سراغ ندارم. روی سرور ها هم وب سرویس نمیتونم داشته باشم که بتونم با json داده ها رو دریافت کنم. فقط یک connection string میتونم داشته باشم با قابلیت اجرای sotred procedure

آیا راهکار مناسبتری برای ارتباط با این بانکها وجود داره که هم perfomance بالایی داشته باشه و هم کد کوتاهتری بتوان نوشت.
توی یک متد به روش قدیم ado این ارتباط داره انجام میشه و دیتا گرفته میشه اما به نظرم روش درست و بهینه ای نمیتونه باشه و قطعا شما دوستان روشهای بهتری سراغ دارید.
ممنونم میشم که اطلاعاتتون رو با من به اشتراک بگذارید
فکر میکنم توی این گروه باید سوال پرسیده بشه درست تر باشه

using (SqlHelper sql = new SqlHelper(model.DbName, model.DbUserName, model.DbPassword, model.IPAddress))
{
if (sql.IsConnect)
{
using (SqlCommand cmd = new SqlCommand(model.ProcedureName, sql.cn))
{
try
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@fromdate", "1399/01/01"));
cmd.Parameters.Add(new SqlParameter("@todate", "1399/10/01"));
using (SqlDataReader rdr = await cmd.ExecuteReaderAsync())
{
while (await rdr.ReadAsync())
{
CView cv = new CView
{
name = rdr[0].ToString(),
dblValue = double.Parse(rdr[1].ToString()),
DepartmentName = model.LocationName,
};
cvlist.Add(cv);
}
}
}
catch (Exception)
{


throw;
}

}
}
}

رامین مرادی
شنبه 20 دی 1399, 13:17 عصر
سرعت اجرا کوئری بیشتر مربوط به طراحی دیتابیستون و همچنین خود کوئریتون هست. تا جایی که من اطلع دارم سریعترین همون ado هست. البته انتتی هم پیشرفتهای خوبی داشته و تقریبا با ado برابری میکنه، اما به شخصه خود من با ado کار کردم . شما روی کوئریتون باید تمرکز کنید تا بهترین و کم هزینه ترین اونو انتخاب کنید تا عملیاتتون بهینه باشه. حدالامکان درصورت عدم نیاز به نمایش یکجای اطلاعات از صفحه بندی استفاده کنید.
در کل کوئریتونو بزارید و ارتباط جداولتون فک کنم دوستان بهتر بتونن کمکتون کنن.