Mes*_*ese 1 c# sql linq sql-server entity-framework
我还是有点新手,我被分配了维护先前完成的代码的任务.我有一个模拟SQL Management Studio的Web,例如限制删除选项,因此基本用户不会搞砸我们的服务器.好吧,我们有一个函数,需要一个查询或查询,它工作正常,但我们的服务器RAM被复杂的查询炸毁,也许它不是那么多的数据,但它的铸造xml和所有那些我仍然没有的东西在SQL中理解.
这是实际的功能:
public DataSet ExecuteMultipleQueries(string queries)
{
var results = new DataSet();
using (var myConnection = new SqlConnection(_connectionString))
{
myConnection.Open();
var sqlCommand = myConnection.CreateCommand();
sqlCommand.Transaction = myConnection.BeginTransaction(IsolationLevel.ReadUncommitted);
sqlCommand.CommandTimeout = AppSettings.SqlTimeout;
sqlCommand.CommandText = queries.Trim();
var dataAdapter = new SqlDataAdapter { SelectCommand = sqlCommand };
dataAdapter.Fill(results);
return results;
}
}
Run Code Online (Sandbox Code Playgroud)
我有点失落,我读过许多不同的答案,但要么我不理解他们,要么他们不以任何方式解决我的问题.
我知道我可以使用Linq-toSql-或Entity,我尝试了它们但我真的不知道如何使用"未知"查询,我可以尝试更多地研究,所以如果你认为它们会帮助我接近一个解决方案,无论如何,我会尝试学习它.
所以要点:
该函数似乎在dataAdapter.Fill(results)调试时停止,此时服务器尝试回答查询并消耗其所有RAM并阻塞自身.我怎么解决这个问题?我想也许可以让SQL返回一定数量的数据,将它存储在某个集合中,然后继续返回数据,并继续前进,直到没有更多数据从SQL返回,但我真的不知道如何检测还有从SQL返回的数据.
我还考虑过在两个不同的线程中读取和存储,但我不知道一个线程中的数据如何存储在其他线程异步中(如果它解决了问题,则更少).
所以,是的,我根本没有任何明确的信息,所以任何指导或提示都会受到高度赞赏.
在此先感谢并为长篇文章感到抱歉.
| 归档时间: |
|
| 查看次数: |
197 次 |
| 最近记录: |