我正在尝试从.NET中的Oracle数据库中检索大量数据。
我正在使用一个.NET DBDataReader
,它可以正常处理少量数据但是当数据变得中等或大时,它会停止运行,我不知道为什么。
如何检索大量数据?
答案 0 :(得分:0)
您应该尝试使用ODP.NET。这是为.NET编写的Oracle数据提供程序,它可以更好地优化与Oracle数据库的通信。
Microsoft弃用了Oracle客户端(System.Data.OracleClient)(http://blogs.msdn.com/adonet/archive/2009/06/15/system-data-oracleclient-update.aspx)并建议使用第三手工具。
<强>编辑:强>
Maby你应该看看这个类似的问题并回答:Big Performance Problems With Oracle DataReader in .Net
答案 1 :(得分:0)
好的,既然您期望与您的问题相关的答案信息非常少,那么回答这些问题将有助于 OTHERS 回答您的问题:
1-数据库中的数据类型是什么
2-您是如何尝试获取数据的(某些代码会有很多帮助)
3-是否有任何索引,表格有多大以及查询有多复杂,您是否尝试过优化它?尝试编写查询。
...
好的,这是你可以尝试告诉我们它是否改变了什么......
static void DownloadBlob(OracleConnection myConnection)
{
OracleCommand myCommand = new OracleCommand("SELECT * FROM table", myConnection);
myConnection.Open();
OracleDataReader myReader = myCommand.ExecuteReader(System.Data.CommandBehavior.Default);
try
{
while (myReader.Read())
{
//Obtain OracleLob directly from OracleDataReader
OracleLob myLob = myReader.GetOracleLob(myReader.GetOrdinal("Ordinal"));
if (!myLob.IsNull)
{
// I hope it is BLOB :)
}
}
}
finally
{
myReader.Close();
myConnection.Close();
}
}