一个表有记录70W,字段数 110,索引10个。这几天我在研究日志问题,当 insert delete update 都要忘索引里面写东西
这样就增加了系统的开销。
首先、我要问一个表有多少个索引,才比较合适二、索引太多会不会影响效率。我现在去测试,大家说说经验
这样就增加了系统的开销。
首先、我要问一个表有多少个索引,才比较合适二、索引太多会不会影响效率。我现在去测试,大家说说经验
解决方案 »
- Update failed. Found 0 records. 这个错误一般发生在什么情况?
- sql server2000和sql server2005的T-SQL语句有哪些异同?
- 存储过程的问题
- 如果把表 A 的第二个列的数据读出来,语句如何写?不知道列名
- 超级简单的一个问题:如何在sql server 2000中从一个脚本文件生成一个数据库
- 将截断字符串或二进制数据--这个错误如何解决
- 请问关于CASE的问题?
- 如何在SQL Server字段里存储mp3文件
- 请教sql server中如何向数据库中插入图片对象。
- 有关各种访问Oracle数据库的方法中速度的问题!
- 微软 提供的 sql server 2008 分别是开发者 和 IT人员 两种体验, 两者区别是什么呀 ? 谢谢
- 时间处理问题???
1、insert delete update 都需要更新索引,都有额外开销
2、insert delete update 可能引起聚集索引数据的页分裂和页搬移
dbcc showcontig
dbcc indexdefrag
2: 索引的多少要與系統性能有個平衡
如果修改性能遠遠大於維護的話,儘量在非必需的列上建立索引
(只是个人经验)
实验归来首先
dbcc traceon(3604) --打开跟踪器
select * from sysfiles --找到日志id
dbcc log(database,2) --查看已有日志,在弄之前我收缩了一下日志当前已有日志95条
我现在对该表插入一个数据
此时日志有228 条
228-95=133 该操作产生133条日志我删除了一个索引,这个操作是日志增加到
1330 条好 我继续插入记录后在
dbcc log(database,2) 此时有日志1362
1362-1330=32 该操作产生32条日志 -- 我日 一下少了怎么多,那多删几个岂不是更快了在删一个索引,这个操作是日志增加到
2776 条好 我继续插入记录后在
dbcc log(database,2) 此时有日志2776
2821-2776=45 该操作产生45条日志 -- 我日 又张上来了 o(∩_∩)o...
继续删 索引 反正有10个呢!日志增加到
4501
我继续插入记录后在
dbcc log(database,2) 此时有日志4501
4535-4501=34 --又回来了 晕了 后面的几个索引 删除后都是在30-50之间徘徊
终于我把10个全删除了
在插记录 产生58条记录
16447-16389=58 我日 又多了,而且查询变的非常慢
我用sql 2005
dbcc log(database,2)这句语法错误
改称dbcc log(2)没有错误
但是向表中添加数据,没有增加行数阿,不知道dbcc log(2)是不是查看日志的
有没有也用2005的阿