avatar
问个优化的问题# Database - 数据库
g*g
1
有个query并不复杂,
select * FROM sync_mapping WHERE account_id = :1 and content_id = :2
ORDER BY sync_id
但是sync_mapping表有30M行,结果每次执行要1分多钟。我查了一下
这个表没有建索引。难道不应该对account_id 做索引吗?
另外这个表使用account_id,content_id,sync_id做了一个composite key,
是不是对性能也有影响?
avatar
B*g
2
1. 啥数据库,哪个版本?
2. composite key没有index?
3. post execution plan of your sql

【在 g*****g 的大作中提到】
: 有个query并不复杂,
: select * FROM sync_mapping WHERE account_id = :1 and content_id = :2
: ORDER BY sync_id
: 但是sync_mapping表有30M行,结果每次执行要1分多钟。我查了一下
: 这个表没有建索引。难道不应该对account_id 做索引吗?
: 另外这个表使用account_id,content_id,sync_id做了一个composite key,
: 是不是对性能也有影响?

avatar
g*g
3
Oracle 10g, composite key index了。对Post execution plan不懂。
但是对(a,b,c) composite key index 应该对
select * where a=:1 and b:2 order by c 不管用吧。
我觉得要对a和b index才有用,特别a是account_id,30M条记录
通常对这个一搜也就剩1K条。

【在 B*****g 的大作中提到】
: 1. 啥数据库,哪个版本?
: 2. composite key没有index?
: 3. post execution plan of your sql

avatar
B*g
4

管不管用要看了execution plan,理论上where部分应该管用,order部分不管用。
如果你用toad或者sql developer,有button产生。
如果你用sql plus,
EXPLAIN PLAN FOR .
把结果贴上来。

【在 g*****g 的大作中提到】
: Oracle 10g, composite key index了。对Post execution plan不懂。
: 但是对(a,b,c) composite key index 应该对
: select * where a=:1 and b:2 order by c 不管用吧。
: 我觉得要对a和b index才有用,特别a是account_id,30M条记录
: 通常对这个一搜也就剩1K条。

avatar
g*g
5
嗯,看似没问题。看来是DB服务器出问题了,也许硬盘啥的没空间之类的。

【在 B*****g 的大作中提到】
:
: 管不管用要看了execution plan,理论上where部分应该管用,order部分不管用。
: 如果你用toad或者sql developer,有button产生。
: 如果你用sql plus,
: EXPLAIN PLAN FOR .
: 把结果贴上来。

avatar
c*t
6
对这种比较大表一般最好的tuning是partition。建立index需要特别小心:看是需要快
速存储还是快速检索。你说的情况可能是temporary space等system resource不够。没
有看到execution plan什么都是猜测

【在 g*****g 的大作中提到】
: 有个query并不复杂,
: select * FROM sync_mapping WHERE account_id = :1 and content_id = :2
: ORDER BY sync_id
: 但是sync_mapping表有30M行,结果每次执行要1分多钟。我查了一下
: 这个表没有建索引。难道不应该对account_id 做索引吗?
: 另外这个表使用account_id,content_id,sync_id做了一个composite key,
: 是不是对性能也有影响?

avatar
c*t
7
要看plan也是需要permission的,用户需要SELECT_CATALOG_ROLE

【在 B*****g 的大作中提到】
:
: 管不管用要看了execution plan,理论上where部分应该管用,order部分不管用。
: 如果你用toad或者sql developer,有button产生。
: 如果你用sql plus,
: EXPLAIN PLAN FOR .
: 把结果贴上来。

avatar
w*e
8
1? 好虫也是做database方面的??

【在 g*****g 的大作中提到】
: 有个query并不复杂,
: select * FROM sync_mapping WHERE account_id = :1 and content_id = :2
: ORDER BY sync_id
: 但是sync_mapping表有30M行,结果每次执行要1分多钟。我查了一下
: 这个表没有建索引。难道不应该对account_id 做索引吗?
: 另外这个表使用account_id,content_id,sync_id做了一个composite key,
: 是不是对性能也有影响?

avatar
g*g
9
不做,可是做优化啥都得看看,至少找出毛病让会的人去干。

【在 w*******e 的大作中提到】
: 1? 好虫也是做database方面的??
avatar
B*g
10
大牛呀,咱这儿找出毛病只能求着人去干,还得假装不知道问题在哪。

【在 g*****g 的大作中提到】
: 不做,可是做优化啥都得看看,至少找出毛病让会的人去干。
avatar
w*e
11
赫赫, Beijing MM不会是我们组的吧??

【在 B*****g 的大作中提到】
: 大牛呀,咱这儿找出毛病只能求着人去干,还得假装不知道问题在哪。
avatar
g*g
12
ft呀, 俺今天找到DBA让他去partition table,他居然说
不能用这个feature,否则license cost会很高。ft, 那还不如用MySQL呢。

【在 B*****g 的大作中提到】
: 大牛呀,咱这儿找出毛病只能求着人去干,还得假装不知道问题在哪。
avatar
B*g
13
换DBA吧,板上应该有人还闲着。

【在 g*****g 的大作中提到】
: ft呀, 俺今天找到DBA让他去partition table,他居然说
: 不能用这个feature,否则license cost会很高。ft, 那还不如用MySQL呢。

avatar
g*g
14
这不是DBA无能,是Oracle太贵了吧。
俺们要考虑把一部分数据放到mysql上。

【在 B*****g 的大作中提到】
: 换DBA吧,板上应该有人还闲着。
avatar
j*n
15
Oracle 不知道,M$ 倒是只有Enterprise 才能用 table partitioning...

【在 g*****g 的大作中提到】
: ft呀, 俺今天找到DBA让他去partition table,他居然说
: 不能用这个feature,否则license cost会很高。ft, 那还不如用MySQL呢。

avatar
B*g
16
是oltp还是data warehouse?
当然要换DBA,都不能说服上面多花几万块,咱公司DBA都是大爷

【在 g*****g 的大作中提到】
: 这不是DBA无能,是Oracle太贵了吧。
: 俺们要考虑把一部分数据放到mysql上。

avatar
B*g
17
ding。
没钱别用oracle,一想起咱公司是个机器就有toad,再看我的工资.....

【在 j*****n 的大作中提到】
: Oracle 不知道,M$ 倒是只有Enterprise 才能用 table partitioning...
avatar
g*g
18
俺上次看服务的费用,似乎一年要给Oracle上M,连这
功能都不能使,似乎有点贵。

【在 B*****g 的大作中提到】
: 是oltp还是data warehouse?
: 当然要换DBA,都不能说服上面多花几万块,咱公司DBA都是大爷

avatar
w*e
21
wk, 抢钱呀?!

【在 g*****g 的大作中提到】
: 4X4 and 1.5M fee every year. ouch. So if they turn on table partition,
: it's another 200K a year, and 500K if they buy support as well.

avatar
c*t
22
咱们都用sql developer来替换toad,你就知足吧

【在 B*****g 的大作中提到】
: ding。
: 没钱别用oracle,一想起咱公司是个机器就有toad,再看我的工资.....

avatar
c*t
23
This is how Oracle making money.

【在 g*****g 的大作中提到】
: 4X4 and 1.5M fee every year. ouch. So if they turn on table partition,
: it's another 200K a year, and 500K if they buy support as well.

avatar
B*g
24
用啥都一样,俺就关心自己的paycheck

【在 c**t 的大作中提到】
: 咱们都用sql developer来替换toad,你就知足吧
avatar
B*g
25
and it successes

【在 c**t 的大作中提到】
: This is how Oracle making money.
avatar
w*e
26
恩, Beijing MM很实在
其实, 大家都关心paycheck

【在 B*****g 的大作中提到】
: 用啥都一样,俺就关心自己的paycheck
avatar
i*a
27
太明顯了
BSO 公司富, 工资高

【在 B*****g 的大作中提到】
: ding。
: 没钱别用oracle,一想起咱公司是个机器就有toad,再看我的工资.....

avatar
B*g
28
公司富基本上是由于pay给的工资低。

【在 i****a 的大作中提到】
: 太明顯了
: BSO 公司富, 工资高

avatar
i*a
29
pay check for cow men like you 再低也可觀
昨天無聊, 股沟找到 Toad for SQL Server 有免費版本. 下載了玩一玩. 好象免費版
本沒有自動格式化功能

【在 B*****g 的大作中提到】
: 公司富基本上是由于pay给的工资低。
avatar
w*e
30
好玩吗?

【在 i****a 的大作中提到】
: pay check for cow men like you 再低也可觀
: 昨天無聊, 股沟找到 Toad for SQL Server 有免費版本. 下載了玩一玩. 好象免費版
: 本沒有自動格式化功能

avatar
B*g
31
免费版有啥好玩的?俺的家里的toad都是DBA版的。

費版

【在 w*******e 的大作中提到】
: 好玩吗?
avatar
c*t
32
bso, 私用公软

【在 B*****g 的大作中提到】
: 免费版有啥好玩的?俺的家里的toad都是DBA版的。
:
: 費版

avatar
B*g
33
D版,俺们公司没有DBA版的,因为IT唯一不用toad的就是DBA team

【在 c**t 的大作中提到】
: bso, 私用公软
avatar
i*a
34
with auto formatting, NOT 好玩
company should have a lience of SQL Prompt from RedGate. I need to hunt it
down...

【在 w*******e 的大作中提到】
: 好玩吗?
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。