青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Prayer

在一般中尋求卓越
posts - 1256, comments - 190, trackbacks - 0, articles - 0
  C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

DB2 9: Row compression and large RIDs

Posted on 2009-07-31 14:44 Prayer 閱讀(797) 評論(0)  編輯 收藏 引用 所屬分類: DB2

Large RIDs

In DB2 Version 8, table and tablespace sizes are limited, as shown in Table 1. The table and tablespace size limits depend on the page size. The number of bytes used as a pointer is 3 bytes. Therefore, only 2 to the power of 24 units are available. This results in 16,777,216 pages. Because 1 byte is being used for the slot number in a single page, 255 multiplied by 16,777,216 rows can be addressed. Depending on the page size, the following limits exist:


Table 1. Tablespace limits on page size in DB2 V8
# of pages Page size Limit of table / tablespace
16,777,216 4 K 64 GB
16,777,216 8 K 128 GB
16,777,216 16 K 256 GB
16,777,216 32 K 512 GB

In DB2 9, the limits have been expanded. The number of bytes for the page address has been increased to 4 bytes, and the slot number now uses 2 bytes. Table 2 shows the table and tablespace limits in DB2 9.


Table 2. Tablespace limits on page size in DB2 9
# of pages Page size Limit of table / tablespace
536,870,912 4 K 2 TB
536,870,912 8 K 4 TB
536,870,912 16 K 8 TB
536,870,912 32 K 16 TB

Large RIDs are only supported in large tablespaces in DB2 9. This differs from DB2 Version 8, where a large tablespace was designed for LOBs and LONG data types only. Large tablespaces are the default mode in DB2 9. But when you migrate from DB2 8 to DB2 9, keep in mind that the regular tablespaces are not converted to large tablespaces. Consider in your migration plan that you may want to change the regular tablespaces into large tablespaces.

Row compression

The row compression feature in DB2 can be used to save storage space at the table level. The benefits are saving container space, smaller backup image size (and therefore reduced backup duration), and less page activity in the bufferpools. You can activate row compression for a single table. A dictionary is created that contains reusable patterns. For the patterns, a pointer is stored. It is possible to estimate the ratio of compression for each table by using the DB2 INSPECT command. You must reorganize a table to enforce the compression.

Compression and large RIDs

Row compression reduces the average size of a row. When using a regular tablespace (suppose you are migrating from DB2 Version 8 to DB2 9, where the regular tablespace will be kept), the limit is still fixed at 255 rows per page. Although you can reduce the average row length by using row compression, you are limited by the number of rows per page and you will waste storage space on the tablespace container.

Example on table ORDERS in database TPCH

The following example uses the table ORDER of a TPCH database (of 1 GB total size) to show the impact of the number of RIDs after using the row compression. A table is used with a small average row size. Therefore, the table has been modified by changing the initial maximum row length. The column O_COMMENT has been cut to a length of 20 characters (instead of 79). A page size of 16 K is used for the tablespace to store the table ORDERS. Using this page size, the effect of large RIDs can be explained very well.

The main steps in the following example are:

  1. Create a table ORDERS in a regular tablespace in DB2 Version 8, check the number of pages, average row size, and number of rows per page.
  2. Migrate the instance and the database to DB2 9.
  3. Create a new large tablespace in DB2 9.
  4. Create the table ORDERS2 like ORDER in the new large tablespace.
  5. Compress both tables, ORDERS and ORDERS2, and run reorg on them.
  6. Now you can compare the number of pages, average row size, and the number of rows per page of both tables. You can see the difference between a regular and a large tablespace.

Modify table design

Example 1 shows the structure of table ORDERS. The column O_COMMENT has been modified.


Example 1. DDL of table ORDERS
            db2inst1@mstar:~/test/compr_lrid> db2 describe table orders
            Column                         Type      Type
            name                           schema    name               Length   Scale Nulls
            ------------------------------ --------- ------------------ -------- ----- ------
            O_ORDERKEY                     SYSIBM    INTEGER                   4     0 No
            O_CUSTKEY                      SYSIBM    INTEGER                   4     0 No
            O_ORDERSTATUS                  SYSIBM    CHARACTER                 1     0 No
            O_TOTALPRICE                   SYSIBM    DECIMAL                  15     2 No
            O_ORDERDATE                    SYSIBM    DATE                      4     0 No
            O_ORDERPRIORITY                SYSIBM    CHARACTER                15     0 No
            O_CLERK                        SYSIBM    CHARACTER                15     0 No
            O_SHIPPRIORITY                 SYSIBM    INTEGER                   4     0 No
            O_COMMENT                      SYSIBM    VARCHAR                  20     0 No
            9 record(s) selected.
            db2inst1@mstar:~/test/compr_lrid>

The average row size (that is column AVG_ROW_SIZE in the query) decreases from 107 bytes of the original table to 79 bytes, see Example 2. The column ROWS_PER_PAGE has been calculated by dividing the number of rows (CARD) by the number of used pages (NPAGES).


Example 2. Numbers of table ORDERS in regular tablespace
            db2inst1@mstar:~/test/compr_lrid> db2 -tvf ars.sql
            SELECT SUBSTR(a.tabname,1,10) AS table, b.npages ,
            CASE WHEN (b.NPAGES  > 0) THEN (b.CARD / b.NPAGES) ELSE -1 END AS ROWS_PER_PAGE,
            SUM(AVGCOLLEN) AVG_ROW_SIZE
            FROM SYSCAT.COLUMNS a, SYSCAT.TABLES b, SYSCAT.TABLESPACES c
            WHERE a.tabschema = b.tabschema AND a.tabname = b.tabname AND b.tbspaceid = c.tbspaceid
            AND a.tabname = 'ORDERS'
            GROUP BY a.tabschema, a.tabname, pagesize, card, npages
            TABLE      NPAGES               ROWS_PER_PAGE        AVG_ROW_SIZE
            ---------- -------------------- -------------------- ------------
            ORDERS     8198                  182                           79
            1 record(s) selected.
            db2inst1@mstar:~/test/compr_lrid>

In the regular tablespace, in DB2 Version 8, in non-compressed mode, 182 rows per-page are stored. In total these are 8198 pages. This is near the limit of 255 pages per row, so the page size of 16 K was a good choice. After migrating the instance and the database to DB2 9, the statistics must be refreshed. A new large tablespace ltb16K with a page size of 16 K will be created and a new table ORDERS2 will be created like the table ORDER in the new large tablespace. No indexes or constraints are used in the TPCH database. Therefore, the creation of the table is very simple. The data will be loaded by cursor, see Example 3.

Create the large tablespace


Example 3. Creation of table ORDERS2
            db2inst1@mstar:~/test/compr_lrid> ./cr_tbspace_ltb16k.sh
            Database Connection Information
            Database server        = DB2/LINUX 9.1.0
            SQL authorization ID   = DB2INST1
            Local database alias   = TPCH
            DROP TABLESPACE ltb16K
            DB21034E  The command was processed as an SQL statement because it was not a
            valid Command Line Processor command.  During SQL processing it returned:
            SQL0204N  "LTB16K" is an undefined name.  SQLSTATE=42704
            CREATE LARGE TABLESPACE ltb16K PAGESIZE 16 K MANAGED BY DATABASE
            USING ( FILE '/db2/db2inst1/TPCH/ltb16K.001' 20000 ) BUFFERPOOL bp16k
            DB20000I  The SQL command completed successfully.
            CREATE TABLE orders2 LIKE orders IN ltb16K
            DB20000I  The SQL command completed successfully.
            DB20000I  The SQL command completed successfully.
            DECLARE c1 CURSOR FOR SELECT * FROM orders
            DB20000I  The SQL command completed successfully.
            LOAD FROM c1 OF CURSOR INSERT INTO orders2
            SQL3501W  The table space(s) in which the table resides will not be placed in
            backup pending state since forward recovery is disabled for the database.
            SQL1193I  The utility is beginning to load data from the SQL statement "
            SELECT * FROM orders".
            SQL3500W  The utility is beginning the "LOAD" phase at time "2007-02-09
            23.03.50.673543".
            SQL3519W  Begin Load Consistency Point. Input record count = "0".
            SQL3520W  Load Consistency Point was successful.
            SQL3110N  The utility has completed processing.  "1500000" rows were read from
            the input file.
            SQL3519W  Begin Load Consistency Point. Input record count = "1500000".
            SQL3520W  Load Consistency Point was successful.
            SQL3515W  The utility has finished the "LOAD" phase at time "2007-02-09
            23.04.17.263410".
            Number of rows read         = 1500000
            Number of rows skipped      = 0
            Number of rows loaded       = 1500000
            Number of rows rejected     = 0
            Number of rows deleted      = 0
            Number of rows committed    = 1500000
            db2inst1@mstar:~/test/compr_lrid>

In the large tablespace, in DB2 9, in non-compressed mode, also 182 rows per-page are stored. The average row size (79) and the number of pages (8198) are the same as in the regular tablespace, see Example 4.


Example 4. Numbers of ORDERS2 in large tablespace
            db2inst1@mstar:~/test/compr_lrid> db2 -tvf ars.orders2.sql
            SELECT SUBSTR(a.tabname,1,10) AS table, PAGESIZE, b.CARD, b.npages ,
            CASE WHEN (b.NPAGES  > 0) THEN (b.CARD / b.NPAGES) ELSE -1 END AS ROWS_PER_PAGE,
            SUM(AVGCOLLEN) AVG_ROW_SIZE FROM SYSCAT.COLUMNS a, SYSCAT.TABLES b, SYSCAT.TABLESPACES c
            WHERE a.tabschema = b.tabschema AND a.tabname = b.tabname AND b.tbspaceid = c.tbspaceid
            AND a.tabname = 'ORDERS2'
            GROUP BY a.tabschema, a.tabname, pagesize, card, npages
            TABLE      NPAGES               ROWS_PER_PAGE        AVG_ROW_SIZE
            ---------- -------------------- -------------------- ------------
            ORDERS2                    8198                  182           79
            1 record(s) selected.
            db2inst1@mstar:~/test/compr_lrid>

The catalog in DB2 9 contains a new column called AVGROWSIZE, which shows the average length (in bytes) of both compressed and uncompressed rows in a table. It is being retrieved for the tables ORDERS and ORDERS2 in Example 5. Both tables have 89 bytes as the average row size. This value differs a little from the calculated value of 79 bytes - calculated by the AVGCOLLEN of all columns.


Example 5. Retrieving the AVGROWSIZE in uncompressed mode
            db2inst1@mstar:~/test/compr_lrid> db2 "select AVGROWSIZE
            from syscat.tables where tabname = 'ORDERS2' "
            AVGROWSIZE
            ----------
            89
            1 record(s) selected.
            db2inst1@mstar:~/test/compr_lrid>
            db2inst1@mstar:~/test/compr_lrid> db2 "select AVGROWSIZE
            from syscat.tables where tabname = 'ORDERS' "
            AVGROWSIZE
            ----------
            89
            1 record(s) selected.
            db2inst1@mstar:~/test/compr_lrid>

Compress the tables

Now both tables are being compressed, see Example 6.

Note: A reorganization of the tables is necessary, the ALTER TABLE statement just updates the catalog content.


Example 6. Compressing the tables
            db2inst1@mstar:~/test/compr_lrid> db2 "alter table db2inst1.orders compress yes"
            DB20000I  The SQL command completed successfully.
            db2inst1@mstar:~/test/compr_lrid>
            db2inst1@mstar:~/test/compr_lrid> db2 "alter table db2inst1.orders2 compress yes"
            DB20000I  The SQL command completed successfully.
            db2inst1@mstar:~/test/compr_lrid>
            db2inst1@mstar:~/test/compr_lrid> time db2 -v "reorg table db2inst1.ORDERS
            resetdictionary"
            reorg table  db2inst1.ORDERS resetdictionary
            DB20000I  The REORG command completed successfully.
            real  0m58.335s
            user  0m0.018s
            sys 0m0.029s
            db2inst1@mstar:~/test/compr_lrid>
            db2inst1@mstar:~/test/compr_lrid> time db2 -v "reorg table  db2inst1.ORDERS2
            resetdictionary"
            reorg table  db2inst1.ORDERS2 resetdictionary
            DB20000I  The REORG command completed successfully.
            real  0m59.505s
            user  0m0.020s
            sys 0m0.028s
            db2inst1@mstar:~/test/compr_lrid> db2 "reorgchk update statistics
            on table db2inst1.orders " > reorgchk.orders.compr.out
            db2inst1@mstar:~/test/compr_lrid> db2 "reorgchk update statistics
            on table db2inst1.orders2 " > reorgchk.orders2.compr.out
            db2inst1@mstar:~/test/compr_lrid>

In Example 7, you can see that the number of pages in the regular tablespace is now 253, it is yet limited by 255 rows per page. However, the large tablespace allows 427 rows per-page for the table ORDERS2. Therefore, the number of pages used for table ORDERS2 is smaller than in table ORDERS. This shows the effect when compressing a table in a regular tablespace. You will still hit the limit of 255 pages. To avoid this, you have to use a large tablespace, then you are able to store more rows per page after the compression.


Example 7. Numbers after compressing
            db2inst1@mstar:~/test/compr_lrid> db2 -tvf ars.sql
            SELECT SUBSTR(a.tabname,1,10) AS table, PAGESIZE, b.CARD, b.npages ,
            CASE WHEN (b.NPAGES  > 0) THEN (b.CARD / b.NPAGES) ELSE -1 END AS ROWS_PER_PAGE,
            SUM(AVGCOLLEN) AVG_ROW_SIZE FROM SYSCAT.COLUMNS a, SYSCAT.TABLES b, SYSCAT.TABLESPACES c
            WHERE a.tabschema = b.tabschema AND a.tabname = b.tabname AND b.tbspaceid = c.tbspaceid
            AND a.tabname = 'ORDERS' GROUP BY a.tabschema, a.tabname, pagesize, card, npages
            TABLE      NPAGES               ROWS_PER_PAGE        AVG_ROW_SIZE
            ---------- -------------------- -------------------- ------------
            ORDERS                     5907                  253           79
            1 record(s) selected.
            db2inst1@mstar:~/test/compr_lrid> db2 -tvf ars.orders2.sql
            SELECT SUBSTR(a.tabname,1,10) AS table, PAGESIZE, b.CARD, b.npages ,
            CASE WHEN (b.NPAGES  > 0) THEN (b.CARD / b.NPAGES) ELSE -1 END AS ROWS_PER_PAGE,
            SUM(AVGCOLLEN) AVG_ROW_SIZE FROM SYSCAT.COLUMNS a, SYSCAT.TABLES b, SYSCAT.TABLESPACES c
            WHERE a.tabschema = b.tabschema AND a.tabname = b.tabname AND b.tbspaceid = c.tbspaceid
            AND a.tabname = 'ORDERS2' GROUP BY a.tabschema, a.tabname, pagesize, card, npages
            TABLE      NPAGES               ROWS_PER_PAGE        AVG_ROW_SIZE
            ---------- -------------------- -------------------- ------------
            ORDERS2                    3512                  427           79
            1 record(s) selected.
            db2inst1@mstar:~/test/compr_lrid>

The average row size (AVGROWSIZE) is the same, as shown in Example 8. It is now 38 bytes. Without compression it was 89 bytes (see Example 5).


Example 8. Retrieving the AVGROWSIZE
            db2inst1@mstar:~/test/compr_lrid>
            db2inst1@mstar:~/test/compr_lrid> db2 "select AVGROWSIZE
            from syscat.tables where tabname = 'ORDERS' "
            AVGROWSIZE
            ----------
            38
            1 record(s) selected.
            db2inst1@mstar:~/test/compr_lrid> db2 "select AVGROWSIZE
            from syscat.tables where tabname = 'ORDERS2' "
            AVGROWSIZE
            ----------
            38
            1 record(s) selected.
            db2inst1@mstar:~/test/compr_lrid>

Introduced with the compression feature are some new columns in the catalog. Specifically, the column PCTPAGESSAVED shows the ratio of savings of pages after the compression. In this example, 57 percent of the pages were saved in the large tablespace, because the number was reduced from 8198 to 3512. The regular tablespace needs some more pages. The number of pages could be reduced from 8198 to 5907 pages, see Example 9. Using the large tablespace saves 40.5 percent of the page space (from 5.907 down to 3.512 pages).


Example 9. Saving in the tables
            db2inst1@mstar:~/test/compr_lrid> db2 "select SUBSTR(tabname,1,20) AS table, npages,
            from syscat.tables where tabschema = 'DB2INST1' and tabname LIKE  'ORDERS%' "
            TABLE                NPAGES               PCTPAGESSAVED
            -------------------- -------------------- ------------------------ -------------
            ORDERS                               5907                   27
            ORDERS2                              3512                   57
            2 record(s) selected.
            db2inst1@mstar:~/test/compr_lrid>

Summary

In Table 3, the results are summarized. The best savings are reached by using the large tablespace. Only 3.512 pages are necessary after the compression, the regular tablespace still needs 5.907 pages. The difference between the regular and the large tablespace is 5.907 pages - 3.512 pages, which results in 2.395 pages of wasted space.


Table 3. Comparing the average rows per page page size 16 K
Table Tablespace Mode CARD NPAGES AVGROWSIZE AVG ROWS PER PAGE
ORDERS REGULAR No compression 1.500.000 8.198 89 182
ORDERS REGULAR Compressed 1.500.000 5.907 38 253
ORDERS2 LARGE No compression 1.500.000 8.198 89 182
ORDERS2 LARGE Compressed 1.500.000 3.512 28 427

Table 4 compares the savings. In the table ORDERS, 28 percent of pages have been saved. In the table ORDERS2, 57 percent of the pages have been saved by the compression.


Table 4. Comparing the savings
Table Tablespace PCTPAGESSAVED NPAGES before compression NPAGES after compression SAVINGS
ORDERS REGULAR 27 8.198 5.907 28
ORDERS2 LARGE 570 8.198 3.512 57

When using a page size of 32 K, the compression in the regular tablespace fails with the warning SQL2220W. There is a minimum record length of 127 bytes for a 32 K regular tablespace (see Table 6). The average row size of 89 bytes is too low.


Table 6. Min and max record length
Page size Regular tablespace min record length Regular tablespace max record length Large tablespace min record length Large tablespace max record length
4 K 14 251 12 287
8 K 30 253 12 580
16 K 62 254 12 1165
32 K 127 253 12 2335

Conclusion: Best practices

To fully take advantage of the benefits of row compression in DB2 9, follow these best practices:

  • Refresh the statistics after migrating to DB2 9 (by running RUNSTATS or REORGCHK UPDATE STATISTICS).
  • Use the DB2 INSPECT command to check the savings on the tables to decide which tables are worth compressing.
  • A reorganization of tables with row compression is necessary for the compression to be effective.
  • When migrating from DB2 Version 8 to DB2 9, plan to migrate the regular tablespaces to large tablespaces.
  • When migrating to large tablespaces, consider scheduling both the data movement and the reorganization of the data.

Resources

Learn

Get products and technologies

Discuss

About the author

Author Photo: Peter Schurr

Peter Schurr works as an IT services specialist for IBM Software Group in IBM Deutschland. His area of expertise is administration and application development with DB2 for Linux, UNIX, and Windows. He has eight years of experience with DB2 and is an IBM Certified Advanced DBA and IBM Certified Application Developer. Peter's areas of special expertise are performance tuning, replication, federated databases, and data modeling

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久久久女教师免费一区| 日韩午夜av在线| 久久久久久成人| 欧美福利视频在线| 一本色道久久综合亚洲精品婷婷| 欧美日韩国产精品一区二区亚洲| 国产精品99久久久久久久vr| 欧美与欧洲交xxxx免费观看| 国内外成人在线| 欧美高清视频www夜色资源网| 亚洲精品久久久久| 午夜欧美大片免费观看| 国产在线观看精品一区二区三区 | 亚洲欧美国产视频| 国产一区二区丝袜高跟鞋图片| 久久视频在线免费观看| 亚洲人体一区| 久久久91精品国产| 99视频精品在线| 国内成+人亚洲+欧美+综合在线| 免费成人高清视频| 亚洲在线视频网站| 亚洲国产清纯| 久久久久久久久久久一区| 亚洲精品黄色| 国产亚洲福利社区一区| 欧美精品日韩www.p站| 午夜精品久久久久久久男人的天堂| 欧美高清在线视频观看不卡| 亚洲综合视频在线| 亚洲欧洲日本国产| 国产一区久久| 欧美日韩在线一区| 久久综合九色综合久99| 亚洲欧美日韩国产中文| 亚洲欧洲一区二区天堂久久| 久久久久久久综合日本| 亚洲一区二区三区高清不卡| **性色生活片久久毛片| 国产午夜精品久久久| 欧美日韩一区二区视频在线| 老司机午夜精品视频| 欧美亚洲在线| 亚洲一区二区三区在线看 | 亚洲精品乱码久久久久久黑人| 久久久91精品国产一区二区三区| 在线视频你懂得一区| 亚洲国产精品高清久久久| 国产午夜精品在线观看| 国产精品国产三级欧美二区 | 一本色道久久综合亚洲精品不卡 | 欧美伊久线香蕉线新在线| 一区二区日韩免费看| 亚洲欧洲精品成人久久奇米网| 久久一综合视频| 久久精品国产99国产精品| 亚洲欧美国产日韩中文字幕| 一个人看的www久久| 亚洲精品国产精品乱码不99按摩| 一区二区三区在线免费视频| 国产欧美日韩在线播放| 国产精品视频网站| 欧美系列精品| 国产精品极品美女粉嫩高清在线| 欧美日韩视频专区在线播放| 欧美国产日本韩| 欧美金8天国| 欧美精品久久一区二区| 欧美精品久久久久久久免费观看 | 蜜桃久久精品一区二区| 久久亚洲精品中文字幕冲田杏梨| 欧美一区影院| 久久精品国产视频| 久久久久免费视频| 老司机午夜精品| 欧美bbbxxxxx| 亚洲高清一区二区三区| 亚洲国产综合91精品麻豆| 91久久精品国产| aⅴ色国产欧美| 亚洲女爱视频在线| 欧美诱惑福利视频| 久久人人爽国产| 欧美国产一区二区| 欧美视频免费在线| 国产精品一区二区欧美| 国产综合久久久久久| 在线欧美福利| 亚洲欧洲日产国产综合网| av成人免费观看| 午夜久久资源| 玖玖综合伊人| 亚洲人成77777在线观看网| 一本色道久久综合狠狠躁篇怎么玩| 亚洲社区在线观看| 欧美中文字幕在线视频| 欧美二区在线| 国产精品欧美日韩一区| 激情综合五月天| 一区二区激情小说| 久久国产精品久久精品国产| 免费成人高清在线视频| 日韩天天综合| 久久精品中文字幕一区二区三区| 免费日韩成人| 国产乱人伦精品一区二区| 一区免费视频| 亚洲一区二区三区久久| 久久久人人人| 亚洲精品三级| 久久国产高清| 欧美三级在线视频| 在线不卡中文字幕| 亚洲天堂男人| 欧美大片一区| 亚洲在线观看视频网站| 欧美+日本+国产+在线a∨观看| 国产精品进线69影院| 在线成人黄色| 亚洲欧美日本在线| 亚洲国产精品久久人人爱蜜臀| 亚洲综合二区| 欧美日本韩国一区| 在线观看欧美黄色| 午夜亚洲性色视频| 亚洲片区在线| 久久久久久999| 国产精品有限公司| 中文亚洲字幕| 亚洲高清网站| 久久色中文字幕| 国产日韩精品一区二区三区在线| 日韩天堂av| 欧美成人精品激情在线观看| 午夜精品久久久久久久久久久久 | 亚洲国产综合视频在线观看 | 久久久久久色| 亚洲一区二区三区乱码aⅴ| 欧美国产一区二区| 伊人成人开心激情综合网| 先锋影音国产精品| 9色精品在线| 欧美精品18+| 亚洲激情网站| 美女脱光内衣内裤视频久久网站| 亚洲免费中文字幕| 欧美亚日韩国产aⅴ精品中极品| 亚洲精品综合精品自拍| 欧美高潮视频| 老司机精品视频一区二区三区| 狠狠干综合网| 久久久噜噜噜久噜久久| 午夜在线一区| 国产视频一区二区在线观看| 亚洲欧美亚洲| 亚洲免费综合| 国产日韩在线亚洲字幕中文| 亚洲欧美日韩综合aⅴ视频| 一本色道久久88综合日韩精品| 欧美激情偷拍| 一区二区三区精品国产| 亚洲精品乱码久久久久久蜜桃91| 欧美成人一区二区三区片免费| 亚洲福利视频二区| 欧美激情成人在线视频| 免费在线视频一区| 日韩视频亚洲视频| 亚洲久久视频| 国产精品乱码一区二区三区| 亚洲女同同性videoxma| 亚洲女同同性videoxma| 国产拍揄自揄精品视频麻豆| 久久精品视频亚洲| 久久中文字幕一区| 亚洲精品乱码久久久久久蜜桃91| 亚洲人成啪啪网站| 国产精品毛片va一区二区三区| 亚洲欧美日韩精品久久奇米色影视| 亚洲永久字幕| 今天的高清视频免费播放成人| 免费日韩成人| 欧美人与禽猛交乱配视频| 亚洲欧美日韩高清| 久久国产精品久久国产精品| 在线观看国产欧美| 亚洲精品一区在线观看香蕉| 国产精品久久波多野结衣| 久久精品在线播放| 免费久久精品视频| 亚洲在线一区二区| 久久精品国产69国产精品亚洲| 亚洲国产视频一区二区| 欧美午夜激情视频| 久久精品男女| 欧美阿v一级看视频| 午夜国产不卡在线观看视频| 久久久精彩视频| 国产精品99久久久久久宅男| 欧美一区二区三区四区在线观看| 亚洲欧洲精品成人久久奇米网|