private void Button3_Click(object sender, System.EventArgs e)
{
tring Conn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath("view.mdb")+";";
OleDbConnection myconn=new OleDbConnection(Conn);
myconn.Open();
string st="DELETE FROM produce WHERE 记录编号 IN (SELECT MAX(记录编号) FROM produce GROUP BY 物资名称,数量,规格型号,下达时间,编号,单价 HAVING COUNT(记录编号)>1)";
OleDbCommand cmd=new OleDbCommand(st,myconn);
cmd.CommandTimeout=0;
cmd.ExecuteNonQuery();
Response.Write("<script language='javascript'>alert('OK!');<"+"/"+"script>");
myconn.Close();
}
代码如上,用来删除数据库中可能存在的重复数据,其中"记录编号"为自动序号.正确编译通过,数据库中有好几万条记录,所以执行起来非常缓慢,有朋友说等个10多分钟估计才可以,但是大概在5分钟左右页面没完全打开就出现"无页面显示,HTTP出现错误了".请问如何让页面一直不超时呢?
还有我想3000条一次查询应该怎么修改语句?
承情高手分析下那段SQL语句在内存中的大致执行情况,提供各种优化方案及页面不超时方案,我查到一个Server.ScriptTimeout,但是不知道该放到哪个地方,分不够再加!
{
tring Conn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath("view.mdb")+";";
OleDbConnection myconn=new OleDbConnection(Conn);
myconn.Open();
string st="DELETE FROM produce WHERE 记录编号 IN (SELECT MAX(记录编号) FROM produce GROUP BY 物资名称,数量,规格型号,下达时间,编号,单价 HAVING COUNT(记录编号)>1)";
OleDbCommand cmd=new OleDbCommand(st,myconn);
cmd.CommandTimeout=0;
cmd.ExecuteNonQuery();
Response.Write("<script language='javascript'>alert('OK!');<"+"/"+"script>");
myconn.Close();
}
代码如上,用来删除数据库中可能存在的重复数据,其中"记录编号"为自动序号.正确编译通过,数据库中有好几万条记录,所以执行起来非常缓慢,有朋友说等个10多分钟估计才可以,但是大概在5分钟左右页面没完全打开就出现"无页面显示,HTTP出现错误了".请问如何让页面一直不超时呢?
还有我想3000条一次查询应该怎么修改语句?
承情高手分析下那段SQL语句在内存中的大致执行情况,提供各种优化方案及页面不超时方案,我查到一个Server.ScriptTimeout,但是不知道该放到哪个地方,分不够再加!
解决方案 »
- 求一段C#代码
- Jquery.uploadify在遨游中多选文件上传第一个后停止,IE正常,已经尝试了uploadify.swf?V='+(new Date()).getTim
- datagrid如何获取模板列的chenkbox的选项
- 问一个数据库数据导入到word的问题,如能解决,再加200分
- Oracle连接问题
- Microsoft Visual Studio 2005 Professional DVD版本(bt下载)
- 如何用javascript隐藏某个表格或行????????
- 请教:HTML与URL的编码\解码问题
- 哪里有关于在ASP中用C#写脚本的手册?
- 子页中如何显示母版页中隐藏的控件
- 如何复制一条相同的记录?我在ORACLE数据库中有一条记录,记录中有BLOB字段,我想重新复制这条带BOLB字段的记录,我该如何写SQL呢?
- 关于.net架构中的业务实体层的疑问,谢谢大家
用sql吧,SQL + 存储过程 + 缓存 + 索引
应该很快的
连接 不要使用OleDbConnection
应该
using System.Data.SqlClient;SqlConnection conn=new SqlConnection(myconn); SqlCommand cmd=new SqlCommand(st,myconn);
应该要考虑sql語句优化 試試把in 改成 EXISTS !
你看看这样行不!"DELETE FROM produce WHERE 记录编号 IN (SELECT MAX(记录编号) FROM produce GROUP BY 物资名称+数量+规格型号+下达时间+编号+单价 HAVING COUNT(记录编号)>1)"