ITPUB论坛-中国最专业的IT技术社区

 
 注册
热搜:
查看: 2746|回复: 21

如何使用HINT来修改达成此执行计划?

[复制链接]
论坛徽章:
305
奥迪
日期:2013-07-29 13:45:59红旗
日期:2014-02-07 10:47:20路虎
日期:2014-02-13 10:34:03保时捷
日期:2014-02-14 09:46:462014年新春福章
日期:2014-02-18 16:41:11马上有车
日期:2014-02-18 16:41:11马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14
跳转到指定楼层
1#
发表于 2017-12-6 15:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ORACLE 11204

有个DELETE 操作的SQL,带了个EXIST的子查询,效率很差,原因是,EXISTS 以主语句中的表作为驱动表,对表中的每条记录,和子查询作匹配后再删除;
改成 IN 子查询后,效率就很号,因为此时,优化器将先计算出子查询的结果集,以子查询的结果集作驱动表,再和主表关联匹配,

--原始语句,效率差
DELETE
FROM    TAB1 T1
WHERE   EXISTS
        (  SELECT 1  FROM    TAB2 T2  WHERE   t2.FVOUCHERID           = T1.FVOUCHERID   )
/

--测试语句,效率好
DELETE FROM    TAB1 T1 WHERE T1.FVOUCHERID  in  (  SELECT  t2.FVOUCHERID    FROM    TAB2 T2 )
/

现问,若不改代码,怎么使用提示来让优化器优先执行子查询,然后以子查询的结果集作驱动表?

认证徽章
论坛徽章:
16
ITPUB十周年纪念徽章
日期:2011-11-01 16:26:29蒙奇·D·路飞
日期:2018-01-31 16:03:23秀才
日期:2018-01-02 15:35:05技术图书徽章
日期:2018-01-02 15:30:09秀才
日期:2018-01-02 15:22:40技术图书徽章
日期:2017-12-21 14:05:31妮可·罗宾
日期:2017-11-17 10:43:23技术图书徽章
日期:2017-11-17 09:13:02娜美
日期:2017-12-15 13:56:33鲜花蛋
日期:2011-12-20 16:06:45
2#
发表于 2017-12-6 16:05 | 只看该作者
看不到兩條當前的執行計劃,只能猜下 :
/*+ leading(t2) use_nl(t1) */ 這樣行嗎 ,或直接/*+ leading(t2) */

使用道具 举报

回复
论坛徽章:
0
3#
发表于 2017-12-6 16:17 | 只看该作者
用提示也改sql代码了吧,直接用sqlprofile呢,不用了删除就是了

使用道具 举报

回复
论坛徽章:
305
奥迪
日期:2013-07-29 13:45:59红旗
日期:2014-02-07 10:47:20路虎
日期:2014-02-13 10:34:03保时捷
日期:2014-02-14 09:46:462014年新春福章
日期:2014-02-18 16:41:11马上有车
日期:2014-02-18 16:41:11马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14
4#
 楼主| 发表于 2017-12-6 16:57 | 只看该作者
guocun09 发表于 2017-12-6 16:05
看不到兩條當前的執行計劃,只能猜下 :
/*+ leading(t2) use_nl(t1) */ 這樣行嗎 ,或直接/*+ leading(t2 ...

你这个提示,是放在DELETE 之后吧?这时提示能够看到T2表?

使用道具 举报

回复
认证徽章
论坛徽章:
16
ITPUB十周年纪念徽章
日期:2011-11-01 16:26:29蒙奇·D·路飞
日期:2018-01-31 16:03:23秀才
日期:2018-01-02 15:35:05技术图书徽章
日期:2018-01-02 15:30:09秀才
日期:2018-01-02 15:22:40技术图书徽章
日期:2017-12-21 14:05:31妮可·罗宾
日期:2017-11-17 10:43:23技术图书徽章
日期:2017-11-17 09:13:02娜美
日期:2017-12-15 13:56:33鲜花蛋
日期:2011-12-20 16:06:45
5#
发表于 2017-12-6 17:02 | 只看该作者
ZALBB 发表于 2017-12-6 16:57
你这个提示,是放在DELETE 之后吧?这时提示能够看到T2表?

是DELETE 之後,可以看到T2 。
不妨explain plan for 或DELETE 改SELECT 執行試試

使用道具 举报

回复
认证徽章
论坛徽章:
8
2009新春纪念徽章
日期:2009-01-04 14:52:28祖国60周年纪念徽章
日期:2009-10-09 08:28:002010新春纪念徽章
日期:2010-03-01 11:07:24ITPUB9周年纪念徽章
日期:2010-10-08 09:32:25ITPUB十周年纪念徽章
日期:2011-11-01 16:23:262013年新春福章
日期:2013-02-25 14:51:24沸羊羊
日期:2015-03-04 14:51:522015年新春福章
日期:2015-03-06 11:57:31
6#
发表于 2017-12-6 17:04 | 只看该作者
DELETE
FROM    TAB1 T1
WHERE   EXISTS
        (  SELECT /*+ unnest */ 1  FROM    TAB2 T2  WHERE   t2.FVOUCHERID           = T1.FVOUCHERID   )
/

使用道具 举报

回复
论坛徽章:
305
奥迪
日期:2013-07-29 13:45:59红旗
日期:2014-02-07 10:47:20路虎
日期:2014-02-13 10:34:03保时捷
日期:2014-02-14 09:46:462014年新春福章
日期:2014-02-18 16:41:11马上有车
日期:2014-02-18 16:41:11马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14
7#
 楼主| 发表于 2017-12-6 17:09 | 只看该作者
running_life 发表于 2017-12-6 16:17
用提示也改sql代码了吧,直接用sqlprofile呢,不用了删除就是了

用SQLPROFILE 调试,涉及到语句中的对象的数据量,而我那语句的子查询,恰好用了表变量(数组变量),不好模拟,所以我只能要求用 HINT 强制执行计划,

使用道具 举报

回复
论坛徽章:
305
奥迪
日期:2013-07-29 13:45:59红旗
日期:2014-02-07 10:47:20路虎
日期:2014-02-13 10:34:03保时捷
日期:2014-02-14 09:46:462014年新春福章
日期:2014-02-18 16:41:11马上有车
日期:2014-02-18 16:41:11马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14
8#
 楼主| 发表于 2017-12-6 17:39 | 只看该作者
1  原始语句的执行计划,可以看到,以主表为驱动表,
SQL>EXPLAIN PLAN FOR
DELETE  
FROM    TAB1
WHERE   EXISTS
        (
                SELECT  1
                FROM    TAB2 T0
                        INNER JOIN
                                (
                                        SELECT
                                                /*+ dynamic_sampling(2)*/
                                                COLUMN_VALUE AS FID
                                        FROM    TABLE(CAST(:PKValue_udt AS udt_inttable))
                     2    3    4               )
                                b
                        ON      t0.FGLVOUCHERID = b.FID
                WHERE   t0.FVOUCHERID           = TAB1.FVOUCHERID
        )
/
SELECT * FROM DISPLAY;
  5    6    7    8    9   10   11   12   13   14   15   16   17   18   19  
Explained.

Elapsed: 00:00:00.01
SQL>
PLAN_TABLE_OUTPUT
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Plan hash value: 1288766477

-----------------------------------------------------------------------------------------------------------------------
| Id  | Operation                            | Name                           | Rows  | Bytes | Cost (%CPU)| Time     |
-----------------------------------------------------------------------------------------------------------------------
|   0 | DELETE STATEMENT                     |                                |     7 |    84 |   337M  (5)|173:53:55 |
|   1 |  DELETE                              | TAB1                           |       |       |            |          |
|*  2 |   INDEX FULL SCAN                    | IDX_TAB1_FVOUCHERID            |  1207K|    13M| 57270   (4)| 00:01:47 |
|   3 |    NESTED LOOPS                      |                                |     1 |    13 |    14   (8)| 00:00:01 |
|   4 |     TABLE ACCESS BY INDEX ROWID      | TAB2                           |     1 |    11 |     2   (0)| 00:00:01 |
|*  5 |      INDEX UNIQUE SCAN               | PK_TAB2                        |     1 |       |     2   (0)| 00:00:01 |
|*  6 |     COLLECTION ITERATOR PICKLER FETCH|                                |     1 |     2 |    12   (9)| 00:00:01 |
-----------------------------------------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   2 - filter( EXISTS (SELECT 0 FROM TABLE() "KOKBF$0","TAB2" "T0" WHERE "T0"."FVOUCHERID"=:B1 AND
              "T0"."FGLVOUCHERID"=VALUE(KOKBF$)))
   5 - access("T0"."FVOUCHERID"=:B1)
   6 - filter("T0"."FGLVOUCHERID"=VALUE(KOKBF$))

21 rows selected.

Elapsed: 00:00:00.02

2  使用 unnest 提示
SQL>EXPLAIN PLAN FOR
DELETE  
FROM    TAB1
WHERE   EXISTS
        (
                SELECT  /*+ unnest() */ 1
                FROM    TAB2 T0
                        INNER JOIN
                                (
                                        SELECT
                                                COLUMN_VALUE AS FID
                                        FROM    TABLE(CAST(:PKValue_udt AS udt_inttable))
                                )
                                b
           2    3    4    5                 ON      t0.FGLVOUCHERID = b.FID
                WHERE   t0.FVOUCHERID           = TAB1.FVOUCHERID
        )
/
SELECT * FROM DISPLAY;
  6    7    8    9   10   11   12   13   14   15   16   17   18  
Explained.

Elapsed: 00:00:00.02
SQL>
PLAN_TABLE_OUTPUT
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Plan hash value: 1244150433

---------------------------------------------------------------------------------------------------------------------------------
| Id  | Operation                              | Name                           | Rows  | Bytes |TempSpc| Cost (%CPU)| Time     |
---------------------------------------------------------------------------------------------------------------------------------
|   0 | DELETE STATEMENT                       |                                |  2347K|    55M|       | 85622   (4)| 00:02:39 |
|   1 |  DELETE                                | TAB1                           |       |       |       |            |          |
|   2 |   MERGE JOIN SEMI                      |                                |  2347K|    55M|       | 85622   (4)| 00:02:39 |
|   3 |    INDEX FULL SCAN                     | IDX_TAB1_FVOUCHERID            |    24M|   276M|       | 57270   (4)| 00:01:47 |
|*  4 |    SORT UNIQUE                         |                                |   316K|  4012K|    12M| 28352   (5)| 00:00:53 |
|   5 |     VIEW                               | VW_SQ_1                        |   316K|  4012K|       | 26723   (5)| 00:00:50 |
|*  6 |      HASH JOIN                         |                                |   316K|  4012K|       | 26723   (5)| 00:00:50 |
|   7 |       COLLECTION ITERATOR PICKLER FETCH|                                |  8168 | 16336 |       |    31   (4)| 00:00:01 |
|   8 |       VIEW                             | index$_join$_002               |  3287K|    34M|       | 26559   (4)| 00:00:50 |
|*  9 |        HASH JOIN                       |                                |       |       |       |            |          |
|  10 |         INDEX FAST FULL SCAN           | PK_TAB2                        |  3287K|    34M|       | 10036   (3)| 00:00:19 |
|  11 |         INDEX FAST FULL SCAN           | IDX_TAB2_FGLVOUCHERID          |  3287K|    34M|       | 11204   (3)| 00:00:21 |
---------------------------------------------------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   4 - access("ITEM_1"="TAB1"."FVOUCHERID")
       filter("ITEM_1"="TAB1"."FVOUCHERID")
   6 - access("T0"."FGLVOUCHERID"=VALUE(KOKBF$))
   9 - access(ROWID=ROWID)

26 rows selected.

Elapsed: 00:00:00.02

3  我期望的执行计划,这里假设了表变量里包含10条记录,TABLE(CAST(:PKValue_udt AS udt_inttable)) t
SQL>EXPLAIN PLAN FOR
DELETE  
FROM    TAB1
WHERE   FVOUCHERID in
        (
                SELECT  t0.FVOUCHERID
                FROM    TAB2 T0
                        INNER JOIN
                                (
                                        SELECT   /*+ cardinality(t 10)*/
                                                COLUMN_VALUE AS FID
                                        FROM    TABLE(CAST(:PKValue_udt AS udt_inttable)) t
                                )
            2    3    4                        b
                        ON      t0.FGLVOUCHERID = b.FID)
/
SELECT * FROM DISPLAY;
  5    6    7    8    9   10   11   12   13   14   15   16  
Explained.

Elapsed: 00:00:00.01
SQL>
PLAN_TABLE_OUTPUT
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Plan hash value: 1718349958

--------------------------------------------------------------------------------------------------------------------------
| Id  | Operation                               | Name                           | Rows  | Bytes | Cost (%CPU)| Time     |
--------------------------------------------------------------------------------------------------------------------------
|   0 | DELETE STATEMENT                        |                                |  2875 | 71875 |   693   (1)| 00:00:02 |
|   1 |  DELETE                                 | TAB1                           |       |       |            |          |
|   2 |   NESTED LOOPS                          |                                |  2875 | 71875 |   693   (1)| 00:00:02 |
|   3 |    VIEW                                 | VW_NSO_1                       |   387 |  5031 |    71   (2)| 00:00:01 |
|   4 |     SORT UNIQUE                         |                                |   387 |  5031 |            |          |
|   5 |      NESTED LOOPS                       |                                |   387 |  5031 |    71   (2)| 00:00:01 |
|   6 |       NESTED LOOPS                      |                                |   390 |  5031 |    71   (2)| 00:00:01 |
|   7 |        COLLECTION ITERATOR PICKLER FETCH|                                |    10 |    20 |    31   (4)| 00:00:01 | <-- 以表变量为驱动表
|*  8 |        INDEX RANGE SCAN                 | IDX_TAB2_FGLVOUCHERID          |    39 |       |     2   (0)| 00:00:01 |
|   9 |       TABLE ACCESS BY INDEX ROWID       | TAB2                           |    39 |   429 |     4   (0)| 00:00:01 |
|* 10 |    INDEX RANGE SCAN                     | IDX_TAB1_FVOUCHERID            |     7 |    84 |     2   (0)| 00:00:01 |
--------------------------------------------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   8 - access("T0"."FGLVOUCHERID"=VALUE(KOKBF$))
  10 - access("FVOUCHERID"="FVOUCHERID")

23 rows selected.

Elapsed: 00:00:00.03
SQL>

使用道具 举报

回复
论坛徽章:
305
奥迪
日期:2013-07-29 13:45:59红旗
日期:2014-02-07 10:47:20路虎
日期:2014-02-13 10:34:03保时捷
日期:2014-02-14 09:46:462014年新春福章
日期:2014-02-18 16:41:11马上有车
日期:2014-02-18 16:41:11马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14
9#
 楼主| 发表于 2017-12-6 17:47 | 只看该作者
sqysl 发表于 2017-12-6 17:04
DELETE
FROM    TAB1 T1
WHERE   EXISTS

刚才加了CARDINALITY进去测试了一下,是可以达成目的,但是CARDINALITY =10, 不准确,我希望是不用此提示,

使用道具 举报

回复
认证徽章
论坛徽章:
16
ITPUB十周年纪念徽章
日期:2011-11-01 16:26:29蒙奇·D·路飞
日期:2018-01-31 16:03:23秀才
日期:2018-01-02 15:35:05技术图书徽章
日期:2018-01-02 15:30:09秀才
日期:2018-01-02 15:22:40技术图书徽章
日期:2017-12-21 14:05:31妮可·罗宾
日期:2017-11-17 10:43:23技术图书徽章
日期:2017-11-17 09:13:02娜美
日期:2017-12-15 13:56:33鲜花蛋
日期:2011-12-20 16:06:45
10#
发表于 2017-12-6 20:56 来自手机 | 只看该作者
ZALBB 发表于 2017-12-6 16:57
你这个提示,是放在DELETE 之后吧?这时提示能够看到T2表?

sorry,子查询可能用不到hint。之前一次优化偶然成功,我以为11g中 hint在子查询时有变化,刚查下文档并没有说明。
此例如要用我想的leading可能要指明query block :
第一种:
DELETE/*+ leading(@sq) use_nl(t1) */
FROM  TAB1 T1
WHERE EXISTS
  (SELECT /*+ qb_name(sq) */ 1FROM  TAB2 T2WHERE t2.FVOUCHERID   = T1.FVOUCHERID )
/
第二种:
直接指定查询块名hint  /*+ leading(@sel$2) use_nl(t1) */   
@sel$2 具体是多少要查下

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档 |
  | | |
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 网站律师 隐私政策 知识产权声明
 北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表
  • http://www.qqtmb.com/5580/64417.html
  • http://www.qqtmb.com/5580/2673.html
  • http://www.qqtmb.com/5580/345276.html
  • http://www.qqtmb.com/5580/56772.html
  • http://www.qqtmb.com/5580/3625.html
  • http://www.qqtmb.com/5580/234573.html
  • http://www.qqtmb.com/5580/37256.html
  • http://www.qqtmb.com/5580/554273.html
  • http://www.qqtmb.com/5580/454773.html
  • http://www.qqtmb.com/5580/244767.html
  • http://www.qqtmb.com/KU110/36326.html
  • http://www.qqtmb.com/KU110/17143.html
  • http://www.qqtmb.com/KU110/445171.html
  • http://www.qqtmb.com/KU110/3172.html
  • http://www.qqtmb.com/KU110/374615.html
  • http://www.qqtmb.com/KU10/2361.html
  • http://www.qqtmb.com/KU10/357743.html
  • http://www.qqtmb.com/KU10/555252.html
  • http://www.qqtmb.com/KU10/71211.html
  • http://www.qqtmb.com/KU10/437244.html
  • http://www.qqtmb.com/dG10/735.html
  • http://www.qqtmb.com/dG10/547654.html
  • http://www.qqtmb.com/dG10/563165.html
  • http://www.qqtmb.com/dG10/56636.html
  • http://www.qqtmb.com/dG10/734677.html
  • http://www.qqtmb.com/G20/51572.html
  • http://www.qqtmb.com/G20/4135.html
  • http://www.qqtmb.com/G20/45212.html
  • http://www.qqtmb.com/G20/62632.html
  • http://www.qqtmb.com/G20/22636.html
  • http://www.qqtmb.com/G21/556576.html
  • http://www.qqtmb.com/G21/7136.html
  • http://www.qqtmb.com/G21/44261.html
  • http://www.qqtmb.com/G21/26261.html
  • http://www.qqtmb.com/G21/665735.html
  • http://www.qqtmb.com/GH22/72632.html
  • http://www.qqtmb.com/GH22/317221.html
  • http://www.qqtmb.com/GH22/7733.html
  • http://www.qqtmb.com/GH22/613157.html
  • http://www.qqtmb.com/GH22/3647.html
  • http://www.qqtmb.com/GH32/521664.html
  • http://www.qqtmb.com/GH32/44157.html
  • http://www.qqtmb.com/GH32/23611.html
  • http://www.qqtmb.com/GH32/26577.html
  • http://www.qqtmb.com/GH32/562.html
  • http://www.qqtmb.com/GH32/47225.html
  • http://www.qqtmb.com/GH32/125556.html
  • http://www.qqtmb.com/GH32/31475.html
  • http://www.qqtmb.com/GH32/527544.html
  • http://www.qqtmb.com/GH32/53712.html
  • http://www.qqtmb.com/fH32/55436.html
  • http://www.qqtmb.com/fH32/575457.html
  • http://www.qqtmb.com/fH32/2355.html
  • http://www.qqtmb.com/fH32/5237.html
  • http://www.qqtmb.com/fH32/747422.html
  • http://www.qqtmb.com/fH32/37654.html
  • http://www.qqtmb.com/fH32/465525.html
  • http://www.qqtmb.com/fH32/732255.html
  • http://www.qqtmb.com/fH32/21566.html
  • http://www.qqtmb.com/fH32/11312.html
  • http://www.qqtmb.com/fH32/6353.html
  • http://www.qqtmb.com/fH32/74173.html
  • http://www.qqtmb.com/PL200/67341.html
  • http://www.qqtmb.com/PL200/145454.html
  • http://www.qqtmb.com/PL200/474715.html
  • http://www.qqtmb.com/PL200/6316.html
  • http://www.qqtmb.com/PL200/24351.html
  • http://www.qqtmb.com/PL200/1352.html
  • http://www.qqtmb.com/PL200/67341.html
  • http://www.qqtmb.com/PL200/145454.html
  • http://www.qqtmb.com/PL200/474715.html
  • http://www.qqtmb.com/PL200/6316.html
  • http://www.qqtmb.com/PL200/24351.html
  • http://www.qqtmb.com/PL200/1352.html
  • http://www.qqtmb.com/PLeff/273367.html
  • http://www.qqtmb.com/PLeff/57316.html
  • http://www.qqtmb.com/PLeff/6325.html
  • http://www.qqtmb.com/PLeff/41626.html
  • http://www.qqtmb.com/PLeff/514325.html
  • http://www.qqtmb.com/PLeff/34513.html
  • http://www.qqtmb.com/m1905/227.html
  • http://www.qqtmb.com/m1905/64265.html
  • http://www.qqtmb.com/m1905/63541.html
  • http://www.qqtmb.com/m1905/116717.html
  • http://www.qqtmb.com/m1905/31334.html
  • http://www.qqtmb.com/m1905/77477.html
  • http://www.qqtmb.com/m1905/62236.html
  • http://www.qqtmb.com/m1905/33524.html
  • http://www.qqtmb.com/m1905/47223.html
  • http://www.qqtmb.com/m1905/512757.html
  • http://www.qqtmb.com/m1905/633625.html
  • http://www.qqtmb.com/m1905/547652.html
  • http://www.qqtmb.com/m1905/273417.html
  • http://www.qqtmb.com/m1905/45424.html
  • http://www.qqtmb.com/m1905/7643.html
  • http://www.qqtmb.com/m1905/74135.html
  • http://www.qqtmb.com/m1905/262453.html
  • http://www.qqtmb.com/m1905/325626.html
  • http://www.qqtmb.com/m1905/141547.html
  • http://www.qqtmb.com/m1905/256133.html
  • http://www.qqtmb.com/m1905/36712.html
  • http://www.qqtmb.com/m1905/471163.html
  • http://www.qqtmb.com/m1905/252526.html
  • http://www.qqtmb.com/m1905/145111.html
  • http://www.qqtmb.com/m1905/115777.html
  • http://www.qqtmb.com/m1905/32651.html
  • http://www.qqtmb.com/m1905/555473.html
  • http://www.qqtmb.com/m1905/14461.html
  • http://www.qqtmb.com/m1905/552.html
  • http://www.qqtmb.com/m1905/761253.html
  • http://www.qqtmb.com/mm105/65336.html
  • http://www.qqtmb.com/mm105/466135.html
  • http://www.qqtmb.com/mm105/424351.html
  • http://www.qqtmb.com/mm105/147235.html
  • http://www.qqtmb.com/mm105/467436.html
  • http://www.qqtmb.com/mm105/164153.html
  • http://www.qqtmb.com/mm105/472151.html
  • http://www.qqtmb.com/mm105/11444.html
  • http://www.qqtmb.com/mm105/424625.html
  • http://www.qqtmb.com/mm105/253632.html
  • http://www.qqtmb.com/mm105/662713.html
  • http://www.qqtmb.com/mm105/217247.html
  • http://www.qqtmb.com/mm105/737532.html
  • http://www.qqtmb.com/mm105/1625.html
  • http://www.qqtmb.com/mm105/2545.html
  • http://www.qqtmb.com/mm105/2671.html
  • http://www.qqtmb.com/mm105/1411.html
  • http://www.qqtmb.com/mm105/114763.html
  • http://www.qqtmb.com/mm105/331212.html
  • http://www.qqtmb.com/mm105/557771.html
  • http://www.qqtmb.com/jb123/76236.html
  • http://www.qqtmb.com/jb123/357762.html
  • http://www.qqtmb.com/jb123/466572.html
  • http://www.qqtmb.com/jb123/733627.html
  • http://www.qqtmb.com/jb123/1263.html
  • http://www.qqtmb.com/jb123/135567.html
  • http://www.qqtmb.com/jb123/32355.html
  • http://www.qqtmb.com/jb123/746252.html
  • http://www.qqtmb.com/jb123/72661.html
  • http://www.qqtmb.com/jb123/216724.html
  • http://www.qqtmb.com/jb123/511452.html
  • http://www.qqtmb.com/jb123/1576.html
  • http://www.qqtmb.com/jb123/54314.html
  • http://www.qqtmb.com/jb123/143657.html
  • http://www.qqtmb.com/jb123/677414.html
  • http://www.qqtmb.com/jb123/2727.html
  • http://www.qqtmb.com/jb123/4471.html
  • http://www.qqtmb.com/jb123/43142.html
  • http://www.qqtmb.com/jb123/16.html
  • http://www.qqtmb.com/jb123/521.html
  • http://www.qqtmb.com/qqzy/15563.html
  • http://www.qqtmb.com/qqzy/535641.html
  • http://www.qqtmb.com/qqzy/131425.html
  • http://www.qqtmb.com/qqzy/242633.html
  • http://www.qqtmb.com/qqzy/135214.html
  • http://www.qqtmb.com/qqzy/41513.html
  • http://www.qqtmb.com/qqzy/625536.html
  • http://www.qqtmb.com/qqzy/577442.html
  • http://www.qqtmb.com/qqzy/36615.html
  • http://www.qqtmb.com/qqzy/26563.html
  • http://www.qqtmb.com/qqzy/15563.html
  • http://www.qqtmb.com/qqzy/535641.html
  • http://www.qqtmb.com/qqzy/131425.html
  • http://www.qqtmb.com/qqzy/242633.html
  • http://www.qqtmb.com/qqzy/135214.html
  • http://www.qqtmb.com/qqzy/41513.html
  • http://www.qqtmb.com/qqzy/625536.html
  • http://www.qqtmb.com/qqzy/577442.html
  • http://www.qqtmb.com/qqzy/36615.html
  • http://www.qqtmb.com/qqzy/26563.html
  • http://www.qqtmb.com/qq123/162652.html
  • http://www.qqtmb.com/qq123/272142.html
  • http://www.qqtmb.com/qq123/71157.html
  • http://www.qqtmb.com/qq123/176637.html
  • http://www.qqtmb.com/qq123/214247.html
  • http://www.qqtmb.com/qq123/67372.html
  • http://www.qqtmb.com/qq123/7375.html
  • http://www.qqtmb.com/qq123/375.html
  • http://www.qqtmb.com/qq123/734514.html
  • http://www.qqtmb.com/qq123/77312.html
  • http://www.qqtmb.com/qq123/226661.html
  • http://www.qqtmb.com/qq123/475214.html
  • http://www.qqtmb.com/qq123/16664.html
  • http://www.qqtmb.com/qq123/127162.html
  • http://www.qqtmb.com/qq123/234763.html
  • http://www.qqtmb.com/qq123/172342.html
  • http://www.qqtmb.com/qq123/71652.html
  • http://www.qqtmb.com/qq123/436.html
  • http://www.qqtmb.com/qq123/335662.html
  • http://www.qqtmb.com/qq123/436216.html
  • http://www.qqtmb.com/qq123/755247.html
  • http://www.qqtmb.com/qq123/53116.html
  • http://www.qqtmb.com/qq123/77513.html
  • http://www.qqtmb.com/qq123/137.html
  • http://www.qqtmb.com/qq123/433673.html
  • http://www.qqtmb.com/qq123/316552.html
  • http://www.qqtmb.com/qq123/43633.html
  • http://www.qqtmb.com/qq123/346336.html
  • http://www.qqtmb.com/qq123/661211.html
  • http://www.qqtmb.com/qq123/724526.html
  • http://www.qqtmb.com/qq123/316617.html
  • http://www.qqtmb.com/qq123/6475.html
  • http://www.qqtmb.com/qq123/243217.html
  • http://www.qqtmb.com/qq123/4255.html
  • http://www.qqtmb.com/qq123/175355.html
  • http://www.qqtmb.com/qq123/436735.html
  • http://www.qqtmb.com/qq123/725367.html
  • http://www.qqtmb.com/qq123/54155.html
  • http://www.qqtmb.com/qq123/622227.html
  • http://www.qqtmb.com/qq123/3714.html
  • http://www.qqtmb.com/qq123/547364.html
  • http://www.qqtmb.com/qq123/155245.html
  • http://www.qqtmb.com/qq123/75232.html
  • http://www.qqtmb.com/qq123/74621.html
  • http://www.qqtmb.com/qq123/742631.html
  • http://www.qqtmb.com/qq123/6513.html
  • http://www.qqtmb.com/qq123/11762.html
  • http://www.qqtmb.com/qq123/534217.html
  • http://www.qqtmb.com/qq123/355753.html
  • http://www.qqtmb.com/qq123/215532.html
  • http://www.qqtmb.com/qq123/7261.html
  • http://www.qqtmb.com/qq123/56621.html
  • http://www.qqtmb.com/qq123/225475.html
  • http://www.qqtmb.com/qq123/413534.html
  • http://www.qqtmb.com/qq123/73437.html
  • http://www.qqtmb.com/qq123/147374.html
  • http://www.qqtmb.com/qq123/556416.html
  • http://www.qqtmb.com/qq123/211431.html
  • http://www.qqtmb.com/qq123/41366.html
  • http://www.qqtmb.com/qq123/472376.html
  • http://www.qqtmb.com/qq123/5652.html
  • http://www.qqtmb.com/qq123/3161.html
  • http://www.qqtmb.com/qq123/6314.html
  • http://www.qqtmb.com/qq123/74427.html
  • http://www.qqtmb.com/qq123/6256.html
  • http://www.qqtmb.com/qq123/541524.html
  • http://www.qqtmb.com/qq123/414756.html
  • http://www.qqtmb.com/qq123/77221.html
  • http://www.qqtmb.com/qq123/25516.html
  • http://www.qqtmb.com/qq123/264367.html
  • http://www.qqtmb.com/qq123/15172.html
  • http://www.qqtmb.com/qq123/242224.html
  • http://www.qqtmb.com/qq123/372773.html
  • http://www.qqtmb.com/qq123/511613.html
  • http://www.qqtmb.com/qq123/757635.html
  • http://www.qqtmb.com/qq123/437667.html
  • http://www.qqtmb.com/qq123/35754.html
  • http://www.qqtmb.com/qq123/4.html
  • http://www.qqtmb.com/qq123/727775.html
  • http://www.qqtmb.com/qq123/736631.html
  • http://www.qqtmb.com/qq123/452375.html
  • http://www.qqtmb.com/qq123/11.html
  • http://www.qqtmb.com/qq123/4251.html
  • http://www.qqtmb.com/qq123/5525.html
  • http://www.qqtmb.com/qq123/72234.html
  • http://www.qqtmb.com/qq123/44674.html
  • http://www.qqtmb.com/qq123/151646.html
  • http://www.qqtmb.com/qq123/763643.html
  • http://www.qqtmb.com/qq123/124715.html
  • http://www.qqtmb.com/qq123/1441.html
  • http://www.qqtmb.com/yqwz/631531.html
  • http://www.qqtmb.com/yqwz/3146.html
  • http://www.qqtmb.com/yqwz/66722.html
  • http://www.qqtmb.com/yqwz/6462.html
  • http://www.qqtmb.com/yqwz/25757.html
  • http://www.qqtmb.com/yqwz/773665.html
  • http://www.qqtmb.com/yqwz/631531.html
  • http://www.qqtmb.com/yqwz/3146.html
  • http://www.qqtmb.com/yqwz/66722.html
  • http://www.qqtmb.com/yqwz/6462.html
  • http://www.qqtmb.com/yqwz/25757.html
  • http://www.qqtmb.com/yqwz/773665.html
  • http://www.qqtmb.com/HO15p/325731.html
  • http://www.qqtmb.com/HO15p/6741.html
  • http://www.qqtmb.com/HO15p/1133.html
  • http://www.qqtmb.com/HO15p/72273.html
  • http://www.qqtmb.com/HO15p/334636.html
  • http://www.qqtmb.com/HO15p/31217.html
  • http://www.qqtmb.com/HO112/731225.html
  • http://www.qqtmb.com/HO112/161555.html
  • http://www.qqtmb.com/HO112/32743.html
  • http://www.qqtmb.com/HO112/35257.html
  • http://www.qqtmb.com/HO112/137155.html
  • http://www.qqtmb.com/HO112/163125.html
  • http://www.qqtmb.com/HO13/751521.html
  • http://www.qqtmb.com/HO13/633.html
  • http://www.qqtmb.com/HO13/534221.html
  • http://www.qqtmb.com/HO13/75627.html
  • http://www.qqtmb.com/HO13/6525.html
  • http://www.qqtmb.com/HO13/166434.html
  • http://www.qqtmb.com/HO13/71734.html
  • http://www.qqtmb.com/HO13/73314.html
  • http://www.qqtmb.com/HO13/263455.html
  • http://www.qqtmb.com/HO13/23351.html
  • http://www.qqtmb.com/GD560/7116.html
  • http://www.qqtmb.com/Jp09/345275.html
  • http://www.qqtmb.com/Jp09/443423.html
  • http://www.qqtmb.com/Jp09/726164.html
  • http://www.qqtmb.com/Jp09/553575.html
  • http://www.qqtmb.com/hd1168/55147.html
  • http://www.qqtmb.com/GD560/625727.html
  • http://www.qqtmb.com/hd1168/5511.html
  • http://www.qqtmb.com/hd1168/11345.html
  • http://www.qqtmb.com/Jp09/36641.html
  • http://www.qqtmb.com/hd1168/542137.html
  • http://www.qqtmb.com/GD560/7122.html
  • http://www.qqtmb.com/GD560/51116.html
  • http://www.qqtmb.com/Jp09/111332.html
  • http://www.qqtmb.com/hd1168/346663.html
  • http://www.qqtmb.com/28911/57546.html
  • http://www.qqtmb.com/28911/4434.html
  • http://www.qqtmb.com/48917/2427.html
  • http://www.qqtmb.com/58910/76465.html
  • http://www.qqtmb.com/28911/176525.html
  • http://www.qqtmb.com/38912/53637.html
  • http://www.qqtmb.com/28911/15771.html
  • http://www.qqtmb.com/48917/65416.html
  • http://www.qqtmb.com/38912/665337.html
  • http://www.qqtmb.com/28911/56675.html
  • http://www.qqtmb.com/48917/12622.html
  • http://www.qqtmb.com/58910/14325.html
  • http://www.qqtmb.com/48917/2431.html
  • http://www.qqtmb.com/28911/572646.html
  • http://www.qqtmb.com/58910/54514.html
  • http://www.qqtmb.com/38912/16322.html
  • http://www.qqtmb.com/58910/23636.html
  • http://www.qqtmb.com/38912/17141.html
  • http://www.qqtmb.com/58910/3457.html
  • http://www.qqtmb.com/28911/46265.html
  • http://www.qqtmb.com/58910/23263.html
  • http://www.qqtmb.com/38912/36412.html
  • http://www.qqtmb.com/28911/262.html
  • http://www.qqtmb.com/48917/7637.html
  • http://www.qqtmb.com/28911/241342.html
  • http://www.qqtmb.com/58910/624136.html
  • http://www.qqtmb.com/48917/1731.html
  • http://www.qqtmb.com/38912/453344.html
  • http://www.qqtmb.com/48917/173641.html
  • http://www.qqtmb.com/48917/5232.html
  • http://www.qqtmb.com/38912/161512.html
  • http://www.qqtmb.com/28911/323351.html
  • http://www.qqtmb.com/28911/6617.html
  • http://www.qqtmb.com/58910/245754.html
  • http://www.qqtmb.com/58910/34.html
  • http://www.qqtmb.com/PDFax/463571.html
  • http://www.qqtmb.com/PDFar/42126.html
  • http://www.qqtmb.com/PDFax/1273.html
  • http://www.qqtmb.com/PDFab/32356.html
  • http://www.qqtmb.com/PDFac/61.html
  • http://www.qqtmb.com/PDFas/171773.html
  • http://www.qqtmb.com/dE12/755137.html
  • http://www.qqtmb.com/dE12/64722.html
  • http://www.qqtmb.com/dE12/52611.html
  • http://www.qqtmb.com/dE12/22413.html
  • http://www.qqtmb.com/dE12/54676.html
  • http://www.qqtmb.com/dE12/377275.html
  • http://www.qqtmb.com/dEor/426613.html
  • http://www.qqtmb.com/dEor/726236.html
  • http://www.qqtmb.com/dEor/56721.html
  • http://www.qqtmb.com/dEor/24413.html
  • http://www.qqtmb.com/dEor/754751.html
  • http://www.qqtmb.com/dEor/31542.html
  • http://www.qqtmb.com/dEor/66376.html
  • http://www.qqtmb.com/dEor/31711.html
  • http://www.qqtmb.com/dEor/71723.html
  • http://www.qqtmb.com/dEor/43515.html
  • 北京赛车pk10 申博官网 北京赛车pk10 六台宝典现场开奖 北京赛车pk10历史记录 北京赛车开奖 北京赛车预测 949494开奖结果今晚 威尼斯人线上娱乐 手机投注平台 幸运28投注技巧 pk10助赢软件 北京pk10百度鼎盛彩票网 北京赛车聚彩 北京pk10如何稳杀3码 pk10稳赢方法 pk10定位计划 pk10包赢计划群