亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

oracle 之數據字典屣履造門。

系統 2196 0
?oracle 之數據字典屣履造門。(更新中)
?
?
? 今天是2013-06-20,哎,寫這篇筆記的時候,我發現我是一個非常懶惰的人,這篇文章本該昨天就完成的,想起了錢鶴灘的《明日歌》,真是“世人若被明日累,春去秋來老將至”。
???? oracle數據字典包括四部分,分別是RDBMS(X$),數據字典表、動態性能視圖(v$)和數據字典視圖。
1)RDBMS(X$)內部 表:
該部分內容是oracle最低層的表數據,這些表維持著oracle的整個視圖,就像我們人體的血液在我們人體流動維持生命一樣。
因此這些表只能查看、研究不建議修改。oracle對修改內部表產生的后果不負責技術支持工作。?
在查看參數文件的時候我曾經提到x$ksppi和X$ksppcv這兩個內部表。
研究內部表:
oracle@oracle:~> sqlplus "/as sysdba"
SQL*Plus: Release 11.1.0.6.0 - Production on 星期四 6月 20 20:38:47 2013
Copyright (c) 1982, 2007, Oracle.? All rights reserved.

連接到:
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SYS@orcl#select open_mode from v$database;
OPEN_MODE
--------------------
READ WRITE
SYS@orcl#grant select on x$ksppi to xiaohai;
grant select on x$ksppi to xiaohai
??????????????? *
第 1 行出現錯誤:
ORA-02030: 只能從固定的表/視圖查詢
可以看出內部表不允許進行授權。
研究內部表方法如下:

SYS@orcl#set autotrace trace explain;
SYS@orcl#select * from v$parameter;
執行計劃
----------------------------------------------------------
Plan hash value: 1128103955
------------------------------------------------------------------------------
| Id? | Operation???????? | Name???? | Rows? | Bytes | Cost (%CPU)| Time???? |
------------------------------------------------------------------------------
|?? 0 | SELECT STATEMENT? |????????? |???? 1 |? 4414 |???? 1 (100)| 00:00:01 |
|*? 1 |? HASH JOIN??????? |????????? |???? 1 |? 4414 |???? 1 (100)| 00:00:01 |
|*? 2 |?? FIXED TABLE FULL| X$KSPPI ? |???? 1 |?? 249 |???? 0?? (0)| 00:00:01 |
|?? 3 |?? FIXED TABLE FULL | X$KSPPCV |?? 100 |?? 406K|???? 0?? (0)| 00:00:01 |
------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
?? 1 - access("X"."INDX"="Y"."INDX")
?????? filter(TRANSLATE("KSPPINM",'_','#') NOT LIKE '#%' OR
????????????? "KSPPSTDF"='FALSE' OR BITAND("KSPPSTVF",5)>0)
?? 2 - filter("X"."INST_ID"=USERENV('INSTANCE') AND
????????????? TRANSLATE("KSPPINM",'_','#') NOT LIKE '##%')
SYS@orcl#
autotrace 語句研究:
該語句工具主要是研究統計sql語句的執行計劃并生成報告,進而對dml語句進行檢測和優化。
Generates a report on the execution path used by the SQL optimizer and the statement execution statistics. The report is useful to monitor and tune the performance of DML statements.
set? autotrace off;??? 不產生報告和執行計劃,默認設置。
set autotrace on? explain;? 生成執行計劃并顯示查詢信息;
set autotrace on statistics;只生成語句的統計信息并顯示查詢信息。
set autotrace on ;?? 即生成語句報告有顯示語句的執行統計信息和計劃
set autotrace traceonly;? 和on一樣,區別就是不顯示查詢信息,查詢的數據依然會fetch但是不會print,只顯示統計信息和執行計劃;
eg:
SYS@orcl#set autotrace on explain
SYS@orcl#select * from t2;
???? EMPNO ENAME
---------- --------------------
????? 7521 WARD

執行計劃
----------------------------------------------------------
Plan hash value: 1513984157
--------------------------------------------------------------------------
| Id? | Operation???????? | Name | Rows? | Bytes | Cost (%CPU)| Time???? |
--------------------------------------------------------------------------
|?? 0 | SELECT STATEMENT? |????? |???? 1 |??? 20 |???? 2?? (0)| 00:00:01 |
|?? 1 |? TABLE ACCESS FULL| T2?? |???? 1 |??? 20 |???? 2?? (0)| 00:00:01 |
--------------------------------------------------------------------------
Note
-----
?? - dynamic sampling used for this statement
SYS@orcl#set autotrace on statistices;
SP2-0735: 未知的 SET 選項開頭 "statistice..."
SYS@orcl#set autotrace on statistics;
SYS@orcl#select * from t2;
???? EMPNO ENAME
---------- --------------------
????? 7521 WARD

統計信息
----------------------------------------------------------
????????? 0? recursive calls
????????? 0? db block gets
????????? 3? consistent gets
????????? 0? physical reads
????????? 0? redo size
??????? 600? bytes sent via SQL*Net to client
??????? 524? bytes received via SQL*Net from client
????????? 2? SQL*Net roundtrips to/from client
????????? 0? sorts (memory)
????????? 0? sorts (disk)
????????? 1? rows processed
SYS@orcl#select * from t2;
???? EMPNO ENAME
---------- --------------------
????? 7521 WARD

執行計劃
----------------------------------------------------------
Plan hash value: 1513984157
--------------------------------------------------------------------------
| Id? | Operation???????? | Name | Rows? | Bytes | Cost (%CPU)| Time???? |
--------------------------------------------------------------------------
|?? 0 | SELECT STATEMENT? |????? |???? 1 |??? 20 |???? 2?? (0)| 00:00:01 |
|?? 1 |? TABLE ACCESS FULL| T2?? |???? 1 |??? 20 |???? 2?? (0)| 00:00:01 |
--------------------------------------------------------------------------
Note
-----
?? - dynamic sampling used for this statement

統計信息
----------------------------------------------------------
????????? 0? recursive calls
????????? 0? db block gets
????????? 3? consistent gets
????????? 0? physical reads
????????? 0? redo size
??????? 600? bytes sent via SQL*Net to client
??????? 524? bytes received via SQL*Net from client
????????? 2? SQL*Net roundtrips to/from client
????????? 0? sorts (memory)
????????? 0? sorts (disk)
????????? 1? rows processed
SYS@orcl#
SYS@orcl#set autotrace traceonly;
SYS@orcl#select * from t;

執行計劃
----------------------------------------------------------
Plan hash value: 1601196873
--------------------------------------------------------------------------
| Id? | Operation???????? | Name | Rows? | Bytes | Cost (%CPU)| Time???? |
--------------------------------------------------------------------------
|?? 0 | SELECT STATEMENT? |????? |???? 5 |?? 180 |???? 3?? (0)| 00:00:01 |
|?? 1 |? TABLE ACCESS FULL| T??? |???? 5 |?? 180 |???? 3?? (0)| 00:00:01 |
--------------------------------------------------------------------------

統計信息
----------------------------------------------------------
????????? 0? recursive calls
????????? 0? db block gets
????????? 4? consistent gets
????????? 0? physical reads
????????? 0? redo size
?????? 1184? bytes sent via SQL*Net to client
??????? 524? bytes received via SQL*Net from client
????????? 2? SQL*Net roundtrips to/from client
????????? 0? sorts (memory)
????????? 0? sorts (disk)
????????? 5? rows processed
?
總結:該工具可以查看語句的統計信息可以變化命令使用非常靈活,
SYS@orcl#set autotrace
用法: SET AUTOT[RACE] {OFF | ON | TRACE[ONLY]} [EXP[LAIN]] [STAT[ISTICS]]
便于語句調優。在此記錄加深一下印象。呵呵,原來這個工具還有多種花樣。
? X$kvit 內部表:英文名字叫:kernel layer performance layer information tables transitory instance parameters;

#select kvitval,kvittag,kvitdsc from x$kvit
? 2? ;
?? KVITVAL KVITTAG????????????? KVITDSC
---------- -------------------- --------------------------------------------------------------------------------
???????? 1 ksbcpu?????????????? number of logical CPUs in the system used by Oracle
???????? 0 ksbcpucore?????????? number of physical CPU cores in the system used by Oracle
???????? 0 ksbcpusocket???????? number of physical CPU sockets in the system used by Oracle
???????? 1 ksbcpu_hwm?????????? high water mark of number of CPUs used by Oracle
???????? 0 ksbcpucore_hwm?????? high water mark of number of CPU cores on system
???????? 0 ksbcpusocket_hwm???? high water mark of number of CPU sockets on system
???????? 1 ksbcpu_actual??????? number of available CPUs in the system
???????? 1 ksbcpu_dr??????????? CPU dynamic reconfiguration supported
???? 33456 kcbnbh?????????????? number of buffers
?????? 25 kcbldq?????????????? large dirty queue if kcbclw reaches this
??????? 40 kcbfsp?????????????? Max percentage of LRU list foreground can scan for free
?? KVITVAL KVITTAG????????????? KVITDSC
---------- -------------------- --------------------------------------------------------------------------------
???????? 2 kcbcln?????????????? Initial percentage of LRU list to keep clean
?????? 800 kcbnbf?????????????? number buffer objects
???????? 0 kcbwst?????????????? Flag that indicates recovery or db suspension
???????? 0 kcteln?????????????? Error Log Number for thread open
???????? 0 kcvgcw?????????????? SGA: opcode for checkpoint cross-instance call
???????? 0 kcvgcw?????????????? SGA:opcode for pq checkpoint cross-instance call
已選擇17行。
SYS@orcl#
kcbldq和kcbfsp是關于dbwr進程進行臟數據寫入磁盤的條件。
如下:
SYS@orcl#@getsp.sql
輸入 par 的值:? db_large_dirty
NAME?????????????????????????? VALUE??????????????? PDESC
------------------------------ -------------------- --------------------------------------------------
_db_large_dirty_queue????????? 25?????????????????? Number of buffers which force dirty queue to be wr
??????????????????????????????????????????????????? itten

SYS@orcl#
SYS@orcl#@getsp.sql
輸入 par 的值:? db_block_max_scan
NAME?????????????????????????? VALUE??????????????? PDESC
------------------------------ -------------------- --------------------------------------------------
_db_block_max_scan_pct???????? 40?????????????????? Percentage of buffers to inspect when looking for
??????????????????????????????????????????????????? free

SYS@orcl#
?
總結:從這些信息我們可以研究出了lru原理,知道了dbwr進行臟數據寫入磁盤的條件。
為了學習,進行嘗試修改如下:
SYS@orcl#alter system set "_db_block_max_scan_pct"=50 scope=spfile;
系統已更改。
SYS@orcl#startup force;
ORACLE 例程已經啟動。
Total System Global Area? 805875712 bytes
Fixed Size????????????????? 2148720 bytes
Variable Size???????????? 562038416 bytes
Database Buffers????????? 234881024 bytes
Redo Buffers??????????????? 6807552 bytes
數據庫已經打開。
SYS@orcl#show parameter _db_block
NAME???????????????????????????????? TYPE?????????????????? VALUE
------------------------------------ ---------------------- ------------------------------
_db_block_max_scan_pct?????????????? integer??????????????? 50

SYS@orcl#exit?
從 Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options 斷開
oracle@oracle:~/test> sqlplus "/as sysdba"
SQL*Plus: Release 11.1.0.6.0 - Production on 星期四 6月 20 21:25:47 2013
Copyright (c) 1982, 2007, Oracle.? All rights reserved.

接到:
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SYS@orcl#@getsp.sql
輸入 par 的值:? db_block_max_scan
原值??? 2: where x.indx=y.indx and x.ksppinm like '%&par%'
新值??? 2: where x.indx=y.indx and x.ksppinm like '%db_block_max_scan%'
NAME?????????????????????????? VALUE??????????????? PDESC
------------------------------ -------------------- --------------------------------------------------
_db_block_max_scan_pct???????? 50?????????????????? Percentage of buffers to inspect when looking for
??????????????????????????????????????????????????? free

SYS@orcl#
?
可以看到我們修改的實施在spfile中加入隱含參數,然后在數據啟動初始化的時候會引用隱含參數的值。(不建議修改)

SYS@orcl#alter system reset "_db_block_max_scan_pct";?????
系統已更改。
SYS@orcl#startup force;
2)數據字典表:
在創建數據庫的時候安裝sql.bsp文件進行創建,在數據庫啟動的時候進行先關字典表的創建。可以通過跟蹤數據庫啟動的過程進行分析。
eg:
startup nomount;
alter session set events '10046 trace nam context level 12';
alter database mount;
alter database open;
如下是截取的跟蹤文件信息:
509 CREATE TABLE USER$("USER#" NUMBER NOT NULL,"NAME" VARCHAR2(30) NOT NULL,"TYPE#" NUMBER NOT NULL,"PASSWORD" VARCHAR2(30),"DATATS#" NUMBER NOT NULL,"TEMPTS#" NUM??????? BER NOT NULL,"CTIME" DATE NOT NULL,"PTIME" DATE,"EXPTIME" DATE,"LTIME" DATE,"RESOURCE$" NUMBER NOT NULL,"AUDIT$" VARCHAR2(38),"DEFROLE" NUMBER NOT NULL,"DEFGRP??????? #" NUMBER,"DEFGRP_SEQ#" NUMBER,"ASTATUS" NUMBER NOT NULL,"LCOUNT" NUMBER NOT NULL,"DEFSCHCLASS" VARCHAR2(30),"EXT_USERNAME" VARCHAR2(4000),"SPARE1" NUMBER,"SPA??????? RE2" NUMBER,"SPARE3" NUMBER,"SPARE4" VARCHAR2(1000),"SPARE5" VARCHAR2(1000),"SPARE6" DATE) STORAGE (? OBJNO 22 TABNO 1) CLUSTER C_USER#(USER#)
??? 510 END OF STMT
??? 511 PARSE #1:c=0,e=456,p=0,cr=0,cu=0,mis=1,r=0,dep=1,og=4,tim=1371736252499680
??? 512 BINDS #1:
??? 513 EXEC #1:c=0,e=217,p=0,cr=0,cu=0,mis=0,r=0,dep=1,og=4,tim=1371736252499956
=====================
??? 480 PARSING IN CURSOR #1 len=637 dep=1 uid=0 oct=1 lid=0 tim=1371736252496043 hv=1077251290 ad='8fd93c08' sqlid='3cgdmzx03b36u'
??? 481 CREATE TABLE OBJ$("OBJ#" NUMBER NOT NULL,"DATAOBJ#" NUMBER,"OWNER#" NUMBER NOT NULL,"NAME" VARCHAR2(30) NOT NULL,"NAMESPACE" NUMBER NOT NULL,"SUBNAME" VARCHAR2??????? (30),"TYPE#" NUMBER NOT NULL,"CTIME" DATE NOT NULL,"MTIME" DATE NOT NULL,"STIME" DATE NOT NULL,"STATUS" NUMBER NOT NULL,"REMOTEOWNER" VARCHAR2(30),"LINKNAME" V??????? ARCHAR2(128),"FLAGS" NUMBER,"OID$" RAW(16),"SPARE1" NUMBER,"SPARE2" NUMBER,"SPARE3" NUMBER,"SPARE4" VARCHAR2(1000),"SPARE5" VARCHAR2(1000),"SPARE6" DATE) PCTFR??????? EE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 STORAGE (? INITIAL 16K NEXT 1024K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 OBJNO 18 EXTENTS (FILE 1 BLOCK 121)??????? )
??? 482 END OF STMT
??? 483 PARSE #1:c=0,e=552,p=0,cr=0,cu=0,mis=1,r=0,dep=1,og=4,tim=1371736252496039
??? 484 BINDS #1:
??? 485 EXEC #1:c=0,e=205,p=0,cr=0,cu=0,mis=0,r=0,dep=1,og=4,tim=1371736252496308

當我們創建表的時候,其實是向先關數據字典寫入數據,分別是obj$,con$,col$,tab$等等。可以跟蹤sql語句進行分析。
當然了我們創建完表之后,可以通過包進行查看我們當時的ddl語句。

eg:
SYS@orcl#select table_name from user_tables where table_name='T';
TABLE_NAME
------------------------------------------------------------
T
SYS@orcl#select dbms_metadata.get_ddl('TABLE','T') FROM DUAL;
DBMS_METADATA.GET_DDL('TABLE','T')
--------------------------------------------------------------------------------
? CREATE TABLE "SYS"."T"
?? (??? "TABLESPACE_NAME" VARCHAR2(30) NOT NULL ENABLE,

SYS@orcl#SET LONG 20000
SYS@orcl#R
? 1* select dbms_metadata.get_ddl ('TABLE','T') FROM DUAL
DBMS_METADATA.GET_DDL('TABLE','T')
--------------------------------------------------------------------------------
? CREATE TABLE "SYS"."T"
?? (??? "TABLESPACE_NAME" VARCHAR2(30) NOT NULL ENABLE,
??????? "USERNAME" VARCHAR2(30) NOT NULL ENABLE,
??????? "BYTES" NUMBER,
??????? "MAX_BYTES" NUMBER,
??????? "BLOCKS" NUMBER,
??????? "MAX_BLOCKS" NUMBER,
??????? "DROPPED" VARCHAR2(3)
?? ) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
? STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
DBMS_METADATA.GET_DDL('TABLE','T')
--------------------------------------------------------------------------------
? PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
? TABLESPACE "USERS"

研究一下這個dbms_metadata包。
這個包的接受如下:
Overview
This pkg implements the mdAPI, a means to retrieve the aggregated
definitions of database objects as either XML docs. or their creation DDL,
or to submit the XML documents to execute the DDL.
-------------------------------------------------------------------
SECURITY
This package is owned by SYS with execute access granted to PUBLIC.
It runs with invokers rights, i.e., with the security profile of
the caller.? It calls DBMS_METADATA_INT to perform privileged
functions.
The object views defined in catmeta.sql implement the package's security
policy via the WHERE clause on the public views which include syntax to
control user access to metadata: if the current user is SYS or has
SELECT_CATALOG_ROLE, then all objects are visible; otherwise, only
objects in the schema of the current user are visible.
然后我們在看看這個function是get_ddl內容如下:
? FUNCTION get_ddl (
??????????????? object_type???? IN? VARCHAR2,
??????????????? name??????????? IN? VARCHAR2,
??????????????? schema????????? IN? VARCHAR2 DEFAULT NULL,
??????????????? version???????? IN? VARCHAR2 DEFAULT 'COMPATIBLE',
??????????????? model?????????? IN? VARCHAR2 DEFAULT 'ORACLE',
??????????????? transform?????? IN? VARCHAR2 DEFAULT 'DDL')
??????? RETURN CLOB;
那么我剛剛傳的參數是object_type為table,name為T。 另外這個包還有很多功能,后續多多實踐進行學習。

3)靜態數據字典視圖。

?? 包括dba_視圖,all_視圖,user_視圖。上級包括下級。如dba_tables,all_tables,user_tables;
eg:
SYS@orcl#set autotrace traceonly explain;
SYS@orcl#select * from dba_tables;

Predicate Information (identified by operation id):
---------------------------------------------------
?? 1 - access("KSPPI"."INDX"="KSPPCV"."INDX")
?? 4 - access("T"."BOBJ#"="CO"."OBJ#"(+))
?? 5 - access("CX"."OWNER#"="CU"."USER#"(+))
?? 7 - access("T"."DATAOBJ#"="CX"."OBJ#"(+))
?? 8 - access("O"."OWNER#"="U"."USER#")
? 10 - access("T"."TS#"="TS"."TS#")
? 12 - access("T"."FILE#"="S"."FILE#"(+) AND "T"."BLOCK#"="S"."BLOCK#"(+) AND
????????????? "T"."TS#"="S"."TS#"(+))
? 13 - access("O"."OBJ#"="T"."OBJ#")
? 14 - filter(BITAND("T"."PROPERTY",1)=0)
? 15 - filter(BITAND("O"."FLAGS",128)=0)
? 20 - filter("KSPPI"."KSPPINM"='_dml_monitoring_enabled')
SYS@orcl#select * from all_tables;
Predicate Information (identified by operation id):
---------------------------------------------------
? 1 - filter("O"."OWNER#"=USERENV('SCHEMAID') OR? EXISTS (SELECT 0 FROM
????????????? "SYS"."OBJAUTH$" "OA",SYS."X$KZSRO" "X$KZSRO" WHERE "GRANTEE#"="KZ
SROROL" AND
????????????? "OA"."OBJ#"=:B1) OR? EXISTS (SELECT 0 FROM SYS."X$KZSPR" "X$KZSPR"
WHERE
????????????? "INST_ID"=USERENV('INSTANCE') AND ((-"KZSPRPRV")=(-45) OR (-"KZSPR
PRV")=(-47) OR
????????????? (-"KZSPRPRV")=(-48) OR (-"KZSPRPRV")=(-49) OR (-"KZSPRPRV")=(-50))
))
SYS@orcl#select * from user_tables;
Predicate Information (identified by operation id):
---------------------------------------------------
?? 1 - access("KSPPI"."INDX"="KSPPCV"."INDX")
?? 4 - access("T"."BOBJ#"="CO"."OBJ#"(+))
?? 5 - access("CX"."OWNER#"="CU"."USER#"(+))
?? 7 - access("T"."DATAOBJ#"="CX"."OBJ#"(+))
?? 8 - access("T"."TS#"="TS"."TS#")
? 10 - access("T"."FILE#"="S"."FILE#"(+) AND "T"."BLOCK#"="S"."BLOCK#"(+) AND
????????????? "T"."TS#"="S"."TS#"(+))
? 12 - filter("O"."OWNER#"=USERENV('SCHEMAID') AND BITAND("O"."FLAGS",128)=0)
? 13 - filter(BITAND("T"."PROPERTY",1)=0)

? 14 - access("O"."OBJ#"="T"."OBJ#")
? 19 - filter("KSPPI"."KSPPINM"='_dml_monitoring_enabled')
顯而易見了。呵呵。
4)動態視圖
明天繼續學習。。。。

+++++++++++++++++++++++++++++++++++++++++++↖(^ω^)↗小海¥¥¥¥¥¥¥¥¥¥¥

?

oracle 之數據字典屣履造門。


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 免费不卡毛片 | 中文字幕在线不卡精品视频99 | 高清在线亚洲精品国产二区 | 首页 动漫 亚洲 欧美 日韩 | 免费费看的欧亚很色大片 | 天天干天天操天天爱 | 我要看欧美一级毛片 | 国内精品91久久久久 | 又爽又黄又无遮挡的视频在线观看 | 五月天精品 | 亚洲国产成人久久综合碰 | 欧美日韩午夜视频 | 91婷婷色涩涩 | 日韩综合| 91亚洲精品国产自在现线 | 亚洲最大免费视频网 | 色www 永久免费网站 | 国产真实自拍 | 一级片久久 | 国产在线一91区免费国产91 | 久久99亚洲精品久久99 | 亚洲天堂久久 | 九九精品久久 | 狠狠色噜噜狠狠狠97影音先锋 | 人人狠狠综合久久亚洲88 | 国产精品久久久久影院免费 | 国产高清国产精品国产k | 免费精品美女久久久久久久久 | 天天天操天天天干 | 深夜免费在线观看 | 国产一级大片免费看 | 欧美社区| 伊人久久综合影院首页 | 九九99香蕉在线视频网站 | 伊人成人在线视频 | 欧美久久精品 | 国产欧美亚洲精品一区 | 国产在线观看一区二区三区 | 在线综合色 | 4hu永久影院在线四虎 | 在线播放a 1|