亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
12下一頁(yè)
最近訪問(wèn)板塊 發(fā)新帖
查看: 3039 | 回復(fù): 11
打印 上一主題 下一主題

請(qǐng)教一下如何優(yōu)化這個(gè)sql [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2005-08-12 08:52 |只看該作者 |倒序?yàn)g覽
基于業(yè)務(wù)處理,我需要執(zhí)行下面這個(gè)sql:
------------------------
select
                        field1
                        ,field2
from table_name a
where substr(field3,2,1)='2'
and not exists
(select
                        distinct field2
from table_name b
where substr(field3,2,1)<>;'2'
and a.field2=b.field2
)
-------------------------
select field1,field2,field3 from  table_name 得到的結(jié)果是:
------- ----------- --------
9XXX07  1XXXX163571 11      
9XXX07  1XXXX975903 00      
9XXX07  1XXXX975903 11      
9XXX23  1XXXX151687 00      
9XXX23  1XXXX151687 12      
9XXX23  1XXXX705440 33      
9XXX23  1XXXX909518 52      
9XXX23  1XXXX939127 00      
9XXX23  1XXXX969591 11      
9XXX23  1XXXX971643 11      
9XXX23  1XXXX978374 11      
9XXX24  1XXXX909518 32      
9XXX25  1XXXX939127 52      
9XXX26  1XXXX951932 52      
9XXX27  1XXXX954010 11      

  15 record(s) selected.
-------------------
執(zhí)行上面的結(jié)果出來(lái)的數(shù)據(jù)應(yīng)該是:
------ -----------
9XXX23 1XXXX909518
9XXX24 1XXXX909518
9XXX26 1XXXX951932

  3 record(s) selected.


這樣的sql,還可以優(yōu)化,以加快執(zhí)行速度么?

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2005-08-12 09:33 |只看該作者

請(qǐng)教一下如何優(yōu)化這個(gè)sql

除去建索引以外,按照邏輯關(guān)系還有的優(yōu)化不?
sql還能有另外一種寫法么?

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2005-08-12 10:54 |只看該作者

請(qǐng)教一下如何優(yōu)化這個(gè)sql

table_name a和 table_name b是結(jié)構(gòu)相同的?

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2005-08-12 11:24 |只看該作者

請(qǐng)教一下如何優(yōu)化這個(gè)sql

同一個(gè)表

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2005-08-12 11:27 |只看該作者

請(qǐng)教一下如何優(yōu)化這個(gè)sql

為了簡(jiǎn)單,我取表名就是叫:table_name
這個(gè)sql就是為了從一張表里面,按照業(yè)務(wù)邏輯取出某些記錄而已
實(shí)際中的這個(gè)表由于數(shù)據(jù)量太大,效率太低

論壇徽章:
0
6 [報(bào)告]
發(fā)表于 2005-08-12 12:58 |只看該作者

請(qǐng)教一下如何優(yōu)化這個(gè)sql

這個(gè)表建索引了嗎? 經(jīng)常插入和更新這個(gè)表的話,那么就做一下reorg,runstats

論壇徽章:
0
7 [報(bào)告]
發(fā)表于 2005-08-12 13:03 |只看該作者

請(qǐng)教一下如何優(yōu)化這個(gè)sql

我認(rèn)為做連接比兩次掃描表會(huì)好很多。不過(guò)用連接的寫法沒想出來(lái)。

論壇徽章:
0
8 [報(bào)告]
發(fā)表于 2005-08-12 14:16 |只看該作者

請(qǐng)教一下如何優(yōu)化這個(gè)sql

主要是這樣跑sql,雖然邏輯關(guān)系是照顧到了,但是效率太低了。
想改寫一下這個(gè)sql,卻還沒想到怎么寫

論壇徽章:
0
9 [報(bào)告]
發(fā)表于 2005-08-12 16:19 |只看該作者

請(qǐng)教一下如何優(yōu)化這個(gè)sql

有其它寫法:

  1. select a.field1,a.field2 from table_name a where substr(a.field3,2,1)='2' and field2 not in (select field2 from table_name where substr(field3,2,1)<>;'2');
復(fù)制代碼


但不會(huì)比你的快!

論壇徽章:
0
10 [報(bào)告]
發(fā)表于 2005-08-12 16:42 |只看該作者

請(qǐng)教一下如何優(yōu)化這個(gè)sql

謝謝
問(wèn)題解決了,雖然還是兩次掃描,但效率提高了很多
-----------------------
        select        
          field1,
                field2
        from
(
                select
                                        a.field1,
                                        a.field2,
                                        case when b.field2 is null then 1 else 0 end as  mark
                from       
                        (select
                                                field1
                                                ,field2
                        from table_name a
                        where substr(field3,2,1)='2'
                        )a
                        left outer join
                        (select
                                                field1
                                                ,field2
                        from table_name b
                        where substr(field3,2,1)<>;'2'
                        )b
                        on a.field2=b.field2 and a.field1=b.field1
)c
where mark=1
group by field1
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP