我一直在試圖評估BrightStar公司DB爲我的項目最初我所做的是檢索數據 -內存數據庫慢 - 從DB
使用明耀DB(服務器SW)我存儲在我的SQL Server數據庫表到其默認存儲即文件位置(C:\Program Files\BrightstarDB\Data
),然後衡量與SQL Server數據庫相比的性能增益,我試圖查詢內存和SQL Server中的表,並試圖加載到gridview。
令我驚訝的是,我可以看到直接從SQL Server中加載數據的時間是內存數據庫的一半。我不知道這是否是正確的方法來檢查性能 - 如果任何人有經驗在內存中工作,請指導。
下面是用於從SQL Server直接加載的代碼,並且在內存中我遵循此鏈接http://brightstardb.com/documentation/Developing_With_BrightstarDB2.html。
protected void BtnDatabase_Click(object sender, EventArgs e)
{
try
{
GridView2.DataSource = null;
TDNdc = TextBox1.Text;
if (!string.IsNullOrEmpty(TDNdc))
selectCommand = "select * from dbo.TD_List where ID='" + TDNdc + "'";
String connectionString = @"data source=TD-abc\SQLEXPRESS;initial catalog=ScriptSave;integrated security=True";
DateTime varDateTime = DateTime.Now;
dataAdapter = new SqlDataAdapter(selectCommand, connectionString);
// Create a command builder to generate SQL update, insert, and
// delete commands based on selectCommand.
SqlCommandBuilder commandBuilder = new SqlCommandBuilder(dataAdapter);
// Populate a new data table and bind it to the BindingSource.
DataTable table = new DataTable();
// table.Locale = System.Globalization.CultureInfo.InvariantCulture;
dataAdapter.Fill(table);
TimeSpan result = DateTime.Now - varDateTime;
GridView2.DataSource = table;
GridView2.DataBind();
Response.Write("Time Taken to load " + GridView2.Rows.Count + " Record(s) From DB : " + result);
//LblInMem.Text = GridView2.Rows.Count + " Record(s) From DB : " + result;
//Response.Write("Time Taken to load datafrom DataBase " + result.ToString() + "Total Record :" + GridView2.Rows.Count);
}
catch (SqlException)
{
}
}
你有任何號碼來支持你的說法嗎?您是否加載了一個整數或在100列的10M行上執行復雜的一系列操作?指標? – HABO 2013-03-27 14:00:46
根據你在這裏得到的代碼,我的猜測是你已經選擇了一個糟糕的方式來衡量任何數據庫的性能。您是否測試了相同的數據集,使用相同的查詢,相同的數據類型,並且多次執行操作(以消除任何首次訪問速度下降)?查詢優化器對select *'的處理方式與按名稱選擇字段不同,並不代表查詢任何數據庫的良好實踐。 – alroc 2013-03-27 14:49:29
那麼我在相同的查詢和數據類型的情況下使用相同的表。我執行了n次,但結果是相同的,無論是當我選擇一些500條記錄還是一條記錄時。我知道select *不是好的做法,因爲我只是想知道我在測試場景中使用的性能和觀察結果ado對象在內存數據庫中的速度要快得多。 – Harry 2013-03-28 02:57:09