我正在使用Net framework 4.0和Sql Server 2012进行开发。在asp.net中的Web应用程序中执行数据库操作时,会发生随机错误。我从代码隐藏文件中调用了一些sql查询。它适用于大小超过300KB的大型文档。如何增加规模。
编辑:
主要在视图图像文件和数据库中保存二进制数据时发生
以下是我收到错误的代码
int isUpdateIDProof = 1;
SqlParameter paramInsertIDProof = null;
SqlCommand cmdInsertIDProof = new SqlCommand("OnBoarding_InsertUploadedIDProof", con);
cmdInsertIDProof.CommandType = CommandType.StoredProcedure;
paramInsertIDProof = new SqlParameter("@FileCaption", SqlDbType.VarChar, 100);
paramInsertIDProof.Direction = ParameterDirection.Input;
paramInsertIDProof.Value = txtIDProofDescription.Text;
cmdInsertIDProof.Parameters.Add(paramInsertIDProof);
paramInsertIDProof = new SqlParameter("@FileData", SqlDbType.VarBinary,1000000000);
paramInsertIDProof.Direction = ParameterDirection.Input;
paramInsertIDProof.Value = OnBoardingFileData;
cmdInsertIDProof.Parameters.Add(paramInsertIDProof);
paramInsertIDProof = new SqlParameter("@FileNames", SqlDbType.VarChar, 100);
paramInsertIDProof.Direction = ParameterDirection.Input;
paramInsertIDProof.Value = fileName;
cmdInsertIDProof.Parameters.Add(paramInsertIDProof);
//execute SQL COMMAND
con.Open();
cmdInsertIDProof.ExecuteNonQuery();
con.Close();
答案 0 :(得分:3)
您的code
没有任何问题。所有关于数据库服务器的内存泄漏都是通过存储映像的方式实现的。如果您使用任何sql server项目dll来压缩和解压缩二进制数据,请检查这一点。
要隐藏错误,可以重新启动sql server服务。它会自动刷新内存并开始正常工作。一年前我遇到了同样的问题。
答案 1 :(得分:0)
这不是来自asp.net编码方面的问题。在处理您的请求并查找执行脚本的内存较少时,会在Sql server中发生这种情况。
我还在运行SQL CLR存储过程并面临类似问题的标准之一中遇到此问题。
以下文章可能有所帮助: - https://www.johnsansom.com/sql-server-memory-configuration-determining-memtoleave-settings/
本文介绍了“memToleave”,它是用于高效内存使用的虚拟地址空间。