2012-01-16 4 views
0

私はこのサイトを初めて使っていますが、ここで役立つ情報を見つけることができます。私はC#で書かれたWebサイト上のグリッドコントロールにSQL 8 dbの結果を返す問題があります。結果は非常に大きいです、私は約800Kの行を話しています!それは数ヶ月前までうまくいっていました。私は管理者が自分のリソースを使って何をしているのかよく分かりません。だから今私は3ヶ月のデータだけにレポートを制限していますが、それでもデータを取得するのに(作業中に)約20分かかります。また、データをエクスポートするオプションもありますので、データ・リーダーを使用してデータをストリーミングすることはできません。ステージング環境ではすべて正常に動作しますが、実際には動作しません。私はこの時点で考えていない。 dbaは、データベースの問題を言います。コードのサンプルは次のとおりです。"dataareader"データのエクスポート

// Get Data 

SqlConnection con = new SqlConnection(); 
SqlCommand cmd = new SqlCommand(); 
SqlDataAdapter da; 
DataSet ds = new DataSet(); 

con.ConnectionString = "MyConnectionString"; 
con.Open(); 

cmd.Connection = con; 
cmd.CommandType = CommandType.StoredProcedure; 
cmd.CommandText = "MyStoredProc"; 
da = new SqlDataAdapter(cmd); 
da.Fill(ds); 

con.Close(); 

StringWriter sw = new StringWriter(); 
HtmlTextWriter htw = new HtmlTextWriter(sw); 
DataGrid dg = new DataGrid(); 
dg.DataSource = ds.Tables[0]; 
dg.DataBind(); 
dg.RenderControl(htw); 

Response.ClearContent(); 
Response.ContentType = "application/vnd.ms-excel"; 
Response.AddHeader("Content-Disposition", "attachment;filename=Report.xls"); 
Response.Write(sw.ToString()); 
Response.End(); 
+1

あなたの人生があなたにレモンを与えたら... dbaを焼く! – JonH

+0

ストアドプロシージャを表示する必要があります。 – JonH

+0

あなたのアプリをプロファイルして、どの時間がどこに費やされたかを確認しようとしましたか?買い物をするには、ロギングステートメントを少し追加するだけです。 –

答えて

0

データベースまたはWebサイトでタイムアウトしている可能性があります。間違いなくいくつかのパフォーマンスチューニングを行い、おそらく一度に小さな行の選択だけが返されるインターフェイスを調べます。

Excelシートにも65k行制限はありませんか?

関連する問題