sql server insert 与 delete 三百万级数据量时速度极慢,有10分钟左右,求高手如何解决

只向一张表中insert和delete数据,已经建索引,select很快,就是insert和delete数据较慢... 只向一张表中insert 和 delete 数据 ,已经建索引, select 很快,就是insert 和 delete 数据较慢 展开
 我来答
caocao_love
2011-03-31 · 超过14用户采纳过TA的回答
知道答主
回答量:86
采纳率:0%
帮助的人:45.9万
展开全部
你首先确定是否用上了索引,你可以再网上搜下sql server的一些系统调优函数,我知道sybase数据库有个sp_showplan id,null,null,null 就可以看出那些使用了索引,那么定义了索引但是没被使用,一般用上了正确的索引如果还是10分钟的,那么在怎么优化都提高不了很多了,300万数量的表除了必要的索引外其他索引可以干掉,因为insert,delete每次操作都要对索引也要操作,修改索引本身要比你插值和删除要花费的时间多多了
你insert这个表如果数据不多,不应该有10分钟,delete因为要关联可能会有10分钟左右,如果你以上都操作了,可以考虑是否是索引坏了,重建下索引,最好先清下日志,防止日志满
追问
谢谢你,我不用insert 与 delete了, 直接用update,update 非索引列会很快,几秒钟,但update 索引列就慢了。
追答
这个东西,还是看你where条件后面有没有用到索引,一些没用的索引其实可以干掉,占空间,耗资源,你可以看看你表结构,和where后面的变量类型是否一致,或者看下where后面有没有用到函数,比如convert,等,这些都有可能导致索引用不上。
_dapianzi_
2011-03-31 · TA获得超过138个赞
知道小有建树答主
回答量:340
采纳率:33%
帮助的人:125万
展开全部
建立索引,提高搜索效率,简单的说就是用jion而不是用from table a,table b等等。。
追问
只向一张表中insert 和 delete 数据 ,已经建索引, select 很快,就是insert 和 delete 数据较慢
追答
如果是这样就利用事务来处理吧
mysql> begin;
Query OK, 0 rows affected (0.00 sec)

mysql> insert into dbtest values(5);
Query OK, 1 row affected (0.00 sec)

mysql> insert into dbtest value(6);
Query OK, 1 row affected (0.00 sec)

mysql> commit;
Query OK, 0 rows affected (0.00 sec)
象这样处理一下试试。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lqefn
2011-03-31 · TA获得超过2655个赞
知道小有建树答主
回答量:3345
采纳率:0%
帮助的人:1741万
展开全部
在事务内处理。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
theprogrammer
2011-04-01 · TA获得超过1650个赞
知道小有建树答主
回答量:1127
采纳率:0%
帮助的人:472万
展开全部
你用的是什么数据库管理系统?
mysql? sql server? oracle?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式