strSql.Format(_T("delete from %s where LogId = '%s'"),OriginalBase.m_sTable,sDeleteArray[i]->GetAt(0));
m_ConnectionPtr->Execute((_bstr_t)strSql,NULL,AdoNS::adCmdText);
如上代码删除数据库中的记录,LogId为表的主键。当表中的记录多(40W左右吧),上面的语句执行花费的时间比较多。有什么办法可以提高删除语句的执行效率吗?谢谢了!
m_ConnectionPtr->Execute((_bstr_t)strSql,NULL,AdoNS::adCmdText);
如上代码删除数据库中的记录,LogId为表的主键。当表中的记录多(40W左右吧),上面的语句执行花费的时间比较多。有什么办法可以提高删除语句的执行效率吗?谢谢了!
你可以增加一些信息,看具体什么语句等执行比较耗时间,然后再来分析优化
尤其是效率问题,可不是简单的几句话就能解决问题!
就像你这个问题,就有可能很多种情况引起:1、Where 中的 列 建立了索引了吗?2、为什么主键用字符型?字符串的比较很慢,这是基本的常识。////////////////////////另外,你只给出了一行程序,不知道前后程序是如何的。
从这行程序看,你只删除了一条记录,因为 LogId 为主键。
猜测,你可能使用循环删除多条记录。
如果是这样的话,那慢也正常的;
你可以试试看,一次删除一批数据,这样只要发送一次 SQL 语句就行了。