oracle compute statistics,Analyze table compute statistics

Hi,

in order to perform the query efficiently, you need to know how many rows would be returned along every step of the query (at least approximately). And for that, you need to know how many rows you have in your tables, what are min/max values, etc. The optimizer is using this information to pick the right method of accessing the data, and if this information is not up-to-date, then if can make very expensive mistakes, because some access methods are efficient when retrieving small amounts of data, and others are efficient for fetching large bulk of data.

You can use the following analogy. Imagine that you are running a laundry business, and you need to pick up laundry from different locations. You own several vehicles, from heavy trucks to bicycles. And in order to minimize your costs, you have to always choose the right vehicle to pick up your order. If you send a big truck to pick up a few pounds of laundry, you would waste a lot of money on gas and other transportation expenses (and plus, you won't be able to use the trunk somewhere else, where it may be more needed). If you send a bicyclist, and he finds that he has to pick up tons of laundry, you're in trouble, too, because he'll have to do many round trips to pick up the load.

It's the same story with the database. And since your data changes every day, sometimes you have to update stats every day, too. Imagine what would happen if you are about to select rows from a table where 99% of rows were deleted the day before, but the optimizer doesn't know about it since the stat haven't been updated. Etc.

Best regards,

Nikolay

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值