PDA

View Full Version : مشکل در لود اطلاعات از دیتا بیس



amirbakhtiary
سه شنبه 26 شهریور 1387, 14:16 عصر
با سلام و خسته نباشید خدمت دوستان عزیز!
من یک برنامه با C# و دیتا بیس SQL Server 2005 نوشتم .
در قسمت سرچ برنامه اطلاعات را با یکdatadapter در یک datatable را پر کرده و سپس در یک گرید نمایش می دهم.
الان اطلاعات دیتا بیس من به حدود 700 هزار تا رسیده و برنامه موقع سرچ هنگ میکنه و روی کامپیوتر با رم پایین جواب نمیده.
از دوستان خواهش می کنم اگه می شه در این زمینه کمک کنند

amin10043
سه شنبه 26 شهریور 1387, 14:28 عصر
میتونی رمت رو افزایش بدی
:)

amirbakhtiary
سه شنبه 26 شهریور 1387, 15:06 عصر
خیلی ممنون از کمکت . من یک کاره دیگه هم کردم ولی جواب نگرفتم . اومدم دیتا تیبل را با یک دیتا ریدر پر کردم .
تو یه برنامه دقیقا همین کار را داره می کنه و مشکلی نداره . یه چیزی حدود 650 هزار تا رکورد که هر کدوم از رکوردا تقریبا 40-50 تا فیلد دارن را سرچ می کنه و در عرض 45 ثانیه روی یک کامپیوتر با رم 2 گیگ جواب می ده . برای من روی رم 4 گیگم هنگ می کنه.
مشکل از لود کردن اطلاعاته ؟

shomalgan
چهارشنبه 27 شهریور 1387, 00:58 صبح
خب یه لطفی بکن کد مربوطه رو بذار ادم ببینه با چی طرفه

amirbakhtiary
شنبه 30 شهریور 1387, 16:29 عصر
SqlCommand cmd= new SqlCommand("SELECT dbo.[file].file_id AS id, dbo.[file].date, dbo.file_melk_type.name AS melktype, dbo.file_manategh.name AS mantagheh,dbo.file_mahalat.name AS mahale, dbo.[file].malek, dbo.file_tabaghat.zirbana, dbo.file_tabaghat.khab AS tedadkhab, dbo.[file].metri AS gheimatmetri,dbo.[file].price AS gheimat, dbo.[file].masahat_zamin AS metraj, dbo.file_tabaghat.tabagheh, dbo.[file].foroosh, dbo.[file].ejareh, dbo.[file].rahn FROM dbo.[file] INNER JOIN dbo.file_mahalat ON dbo.file_mahalat.mahalat_id = dbo.[file].mahalat_id INNER JOIN dbo.file_manategh ON dbo.file_manategh.manategh_id = dbo.[file].manategh_id INNER JOIN dbo.file_melk_type ON dbo.[file].melk_type_id = dbo.file_melk_type.melk_type_id INNER JOIN dbo.file_tabaghat ON dbo.[file].file_id = dbo.file_tabaghat.file_id Where date between @fromdate And @todate " + Where0, cn);
cmd.CommandType = CommandType.Text;


cn.Open();

SqlDataReader dataread = cmd.ExecuteReader();




dt.Clear();
dt.Load(dataread, LoadOption.Upsert);



dataGridViewSearch.DataSource = dt;


dataread.Close();
cn.Close();



اینم کدش

xxxxxxxxxx
شنبه 30 شهریور 1387, 22:51 عصر
سلام.حتما روی فیلدهایی که در قسمت where زیاد استفاده میشن کلید گذاشتی که سرعتت زیاد بشه!
حدس میزنم استفاده spوveiw کمکت کنه.

esmartiz_red
شنبه 30 شهریور 1387, 23:06 عصر
منم پیشنهاد دوستمون رو تایید می کنم با استفاده از sp کار و بار جستجو رو از رو دوش برنامه ات بر می داری این کارو انجام بده ببین مشگلت حل می شه البته فکر می کنم اگه این کارو انجام بدی کارت راه می یفته