日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

講解主機DB2 9存儲過程的規劃和實施技巧

瀏覽:167日期:2023-11-09 19:32:52

本文主要介紹主機 DB2 上的存儲過程的規劃和實施經驗,幫助用戶了解主機 DB2 上的存儲過程的基本特點及其如何進行分類實施。

隨著主機 DB2 技術的發展,DB2 產品的功能越來越豐富,以及 DB2 產品增強了對其分布式訪問功能,所以正確配置 DB2 產品提供的存儲過程,就越來越重要。對現在的主機數據庫用戶來說,DB2 9 for z/OS 下的存儲過程已經從一個可選項逐漸演變成了在數據庫應用開發考慮的重要因素。在主機數據庫存儲過程的應用方面,除了用戶可以根據需要開發存儲過程外。主機數據庫產品也提供了功能豐富的各類存儲過程供用戶使用。本篇就是為了幫助主機系統和開發人員更好的規劃和實施基于主機數據庫(DB2 for z/OS)的存儲過程。

DB2 版本 9 以后,主機上所有的存儲過程都統一由 z/OS 的一個子系統 WLM 來統一管理,WLM 是通過應用環境(Application Environment)來管理存儲過程的,當存儲過程被調用時,WLM 會自動啟動和應用環境相應的啟動作業來管理和實現所需要的存儲過程功能。

我們可以把數據庫存儲過程分為 DB2 系統產品數據庫存儲過程和用戶開發的存儲過程。關于 DB2 數據庫系統產品的存儲過程,按照存儲過程的功能,開發語言,性能要求等,我們會設置不同的數據庫存儲過程運行環境。下面的篇幅會面較詳細的介紹這方面的情況。對于用戶編寫的存儲過程,存儲過程配置基本原則是一樣,都需要根據實際應用開發功能和性能的要求進行規劃實施,都需要根據具體要求進行具體分析,這里不再做主要描述。

存儲過程的客戶化規劃和實施

在實施主機提供的 DB2 存儲過程的時候,就象上文提到的,需要考慮到存儲過程調用時的執行要求,這些要求包括存儲過程執行的功能是怎么樣的,調用時限定條件以及存儲過程有無特殊性能要求等。正確配置 DB2 存儲過程,以下幾個方面是比較重要而應該被重點關注的:

同存儲過程相關的 DB2 子系統配置

由于 DB2 9 產品發布后,包括針對存儲過程在內一些新的功能增強,DB2 系統都是通過實施 PTF 或 APAR 的方式來實現的,所以需要確認相關的數據庫產品的 PTF 或 APAR 是否已經正確實施。具體需要實施的 PTF 或 APAR 可以參考相關的資料。

在 DB2 9 的安裝流程里,安裝界面 Panel DSNTIPX 是來配置和存儲過程相關的參數的,是用來生成安裝所需要的 Sample 作業。

清單 1. DB2 9 安裝界面 DSNTIPX

DSNTIPX INSTALL DB2 - ROUTINE PARAMETERS

===>

Scrolling backward may change fields marked with asterisks

Enter data below:

* 1 WLM PROC NAME ===> DSN1WLM WLM-established stored procedure JCL PROC

2 NUMBER OF TCBS ===> 8 Number of concurrent TCBs (1-100)

3 MAX ABEND COUNT ===> 0 Allowable ABENDs for a procedure (0-255)

4 TIMEOUT VALUE ===> 180 Seconds to wait before SQL CALL or

function invocation fails (5-1800,NOLIMIT)

5 WLM ENVIRONMENT ===> Default WLM env name

6 MAX OPEN CURSORS ===> 500 Maximum open cursors per thread

7 MAX STORED PROCS ===> 2000 Maximum active stored procs per thread

其中,對于 DSNTIPX 所涉及到的參數,下面做一個簡要的描述:

◆WLM PROC NAME

用來指定在安裝過程中生成 Sample 中作業的缺省存儲過程的名字。

◆NUMBER OF TCBS

用來指定在 WLM 啟動的一個地址空間里,可以并發調用多少個存儲過程。這個值也受到 USS 下的 MAXPROCUSER(每一個用戶在主機 USS 環境下最大可以有多少個 processes)參數的限制。

◆MAX ABEND COUNT

在 DSNZPARM 里對應的參數是 STORMXAB,用來指定存儲過程可以有多少次調用失敗后,整個調用結束。缺省值為 0,意味著在存儲過程第一次執行不正常結束時,存儲過程調用結束。

◆TIMEOUT VALUE

對應的 DSNZPARM 參數是 STORTIME。用來指定在存儲過程地址空間里,DB2 容許等待存儲過程分配 TCB 的時間,單位為秒。如果在這個時間段內沒有被分配一個 TCB 來執行,存儲過程調用失敗。推薦不要設為 NOLIMIT,因為如果設為 NOLIMIT,當出現異常例如存儲過程地址空間被關掉,存儲過程調用請求會一直等待分配 TCB,直到條件滿足或者 thread 被取消。

◆WLM ENVIRONMENT

對應的 DSNZPARM 參數為 WLMENV,用來指定在定義存儲過程時,如果沒有指定 WLM_ENVIRONMENT 的值時,系統會自動分配的 WLM 應用環境的名字。

◆MAX OPEN CURSORS

對應的 DSNZPARM 參數是 MAX_NUM_CUR,用來指定每一個 DB2 應用 thread 最大可以打開的 cursors 數量

◆MAX STORED PROCS

對應的 DSNZPARM 參數是 MAX_ST_PROC。用來設定 DB2 應用 thread 可以調用的最大存儲過程數量。在每一次 COMMIT 后,重新開始記數。

主機 WLM 應用環境的規劃和實施

DB2 9 之后,所有的存儲過程都運行在 WLM 應用環境管理之下,由于主機數據庫下存儲過程數量較多,我們在定制的時候,需要把具有類似屬性的存儲過程定義在一個應用環境下。目的是最大限度的減少 WLM 應用環境的定義數量。當然如果你只是客戶化少量的存儲過程或者是對某些存儲過程有一些特定的要求,例如性能或存儲等,也可以定義粒度更小的 WLM 應用環境。另外在一些存儲過程里所涉及的數據集里,有一些是需要具有 APF 屬性的,需要特別注意。以下為一個 WLM 應用環境的定義例子,例子中應用環境所對應的啟動作業為 DB11WLM1。

清單 2. 主機 WLM 應用環境定義界面

Appl Environment Name . . DB11WLM1

Description . . . . . . . DB2 DB11WLM1

Subsystem type . . . . . DB2

Procedure name . . . . . DB11WLM1

Start parameters . . . . DB2SSN=&IWMSSNM,NUMTCB=1,APPLENV=DB11WLM1

創建 DB2 存儲過程

DB2 產品提供的存儲過程是通過客戶化 DSNTIJSG 作業來定義的。在提交作業完成創建存儲過程之前,需要對存儲過程進行必要的規劃。根據存儲過程的功能不同,建議分為以下 4 類:

表 1. 存儲過程的分類

另外,需要注意以下幾點:

1.存儲過程的分類可能會依據 DB2 的 PTF 版本不同而有改變;

2.存儲過程的 NUMTCB 的設置除了根據存儲過程的功能要求外,還依賴于系統資源情況;

3.建議 WLM 應用環境和啟動過程名稱一致,便于管理;

4.存儲過程分類的粒度根據實際情況可能會有不同,基本原則為在滿足功能需求的情況下,盡可能的簡化配置,便于管理。

以下我們重點介紹為四個不同的 WLM 應用環境準備的啟動作業過程,通過啟動作業可以為 WLM 環境準備不同的存儲過程執行環境。

為在線 Utility 執行而準備的存儲過程

此類存儲過程功能是需要調用數據庫的在線 UTILITY,例如數據庫所提供的 DSNUTILS 和 DSNUTILU,在配置此類存儲過程的時候,NUMTCB 要求定義為 1,也就是不容許并發調用。主要是由于在調用時,會生成一些中間文件,如果容許同時調用存儲過程的話,這些文件會被互相覆蓋,導致不可預料的錯誤發生。

以下為此類存儲過程所調用的啟動作業。在作業中的 SYSIN 是分配一些臨時空間存儲 Utility 的輸入語句。SYSPRINT 是分配臨時空間來存儲 utility 的輸出信息。RNPRIN01 是為 DFSORT 信息所分配的空間,UTPRINT 也是為 DFSORT 信息所分配的空間,DSSPRINT 是當執行 concurrent copies 時,為輸出信息分配空間。

清單 3. 在線 Utility 存儲過程對應的 STC 作業

//DB11WLM1 PROC APPLENV=DB11WLM1,DB2SSN=DSN,RGN=0K,NUMTCB=1

//IEFPROC EXEC PGM=DSNX9WLM,REGION=&RGN,TIME=NOLIMIT,

// PARM='&DB2SSN,&NUMTCB,&APPLENV'

//STEPLIB DD DISP=SHR,DSN=prefix.SCEERUN

// DD DISP=SHR,DSN=prefix.SDSNEXIT

// DD DISP=SHR,DSN=prefix.SDSNLOAD

//UTPRINT DD SYSOUT=*

//RNPRIN01 DD SYSOUT=*

//DSSPRINT DD SYSOUT=*

//SYSIN DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND)

//SYSPRINT DD UNIT=SYSDA,SPACE=(4000,(20,20),,,ROUND)

為通用情況準備的存儲過程

另外,我們為大多數的存儲過程準備了一套運行環境,所準備的啟動作業如下所示,其中 NUMTCB 可以根據系統資源情況來定,一般推薦可以設置為 40 或 60。

清單 4. 通用情況下存儲過程對應的 STC 作業

//DB11WLM2 PROC APPLENV=DB11WLM2,DB2SSN=DSN,RGN=0K,NUMTCB=40

//IEFPROC EXEC PGM=DSNX9WLM,REGION=&RGN,TIME=NOLIMIT,

// PARM='&DB2SSN,&NUMTCB,&APPLENV'

//STEPLIB DD DISP=SHR,DSN=prefix.SCEERUN

//* DD DISP=SHR,DSN=prefix.SDFHEXCI For CICS

// DD DISP=SHR,DSN=prefix.SDSNEXIT

// DD DISP=SHR,DSN=prefix.SDSNLOAD

//* DD DISP=SHR,DSN=prefix.SCSQLOAD For MQ

//* DD DISP=SHR,DSN=prefix.SCSQAUTH For MQ

//* DD DISP=SHR,DSN=prefix.SCSQANLE For MQ

//*SYSIN DD SYSOUT=* For Debugger and XML

//*SYSPRINT DD SYSOUT=*

//*WSERROR DD PATH='/tmp/wsc.err', For WEB_SERVICES

//* PATHOPTS=(ORDWR,OCREAT,OAPPEND),

//* PATHMODE=(SIRUSR,SIWUSR,SIRGRP,SIWGRP,SIROTH,SIWOTH)

REXX 語言編寫的存儲過程

對于由 REXX 語言寫的存儲過程來說,啟動作業同其他類型的存儲過程是不同的。見下面的例子。需要特別提出的是,REXX 類型的存儲過程的 NUMTCB 應該設為 1。

清單5. REXX 存儲過程對應的STC作業

//DB11WLMR PROC APPLENV=DB11WLM_REXX,DB2SSN=DSN,RGN=0K,NUMTCB=1

//IEFPROC EXEC PGM=DSNX9WLM,REGION=&RGN,TIME=NOLIMIT,

// DYNAMNBR=5, <== Allow for Dyn Allocs

// PARM='&DB2SSN,1,&APPLENV' <== Use 1, not NUMTCB

//*

//NUMTCB@1 SET NUMTCB= <== Null NUMTCB symbol

//*

//* Include SDSNEXIT to use Secondary Authids (DSN3@ATH DSN3@SGN exits)

//STEPLIB DD DISP=SHR,DSN=prefix.RUNLIB.LOAD

// DD DISP=SHR,DSN=CBC!!.SCCNCMP <== C Compiler

// DD DISP=SHR,DSN=prefix.SCEERUN <== LE runtime

// DD DISP=SHR,DSN=prefix.SDSNEXIT

// DD DISP=SHR,DSN=prefix.SDSNLOAD

//SYSEXEC DD DISP=SHR,DSN=DSN!!0.SDSNCLST <== Location of DSNTPSMP

//SYSTSPRT DD SYSOUT=*

//CEEDUMP DD SYSOUT=*

//SYSPRINT DD SYSOUT=*

//SYSABEND DD DUMMY

//DSNTRACE DD SYSOUT=*

//*

//**** Data sets required by the SQL Procedures Processor

//SQLDBRM DD DISP=SHR, <== DBRM Library

// DSN=DSN!!0.DBRMLIB.DATA

//SQLCSRC DD DISP=SHR, <== Generated C Source

// DSN=DSN!!0.SRCLIB.DATA

//SQLLMOD DD DISP=SHR, <== Application Loadlib

// DSN=DSN!!0.RUNLIB.LOAD

//SQLLIBC DD DISP=SHR, <== C header files

// DSN=CEE!!.SCEEH.H

// DD DISP=SHR,

// DSN=CEE!!.SCEEH.SYS.H

// DD DISP=SHR, <== Debug header file

// DSN=DSN!!0.SDSNC.H

//SQLLIBL DD DISP=SHR, <== Linkedit includes

// DSN=CEE!!.SCEELKED

// DD DISP=SHR,

// DSN=DSN!!0.SDSNLOAD

//SYSMSGS DD DISP=SHR, <== Prelinker msg file

// DSN=CEE!!.SCEEMSGP(EDCPMSGE)

//*

//**** DSNTPSMP Configuration File - CFGTPSMP (optional)

//* A site provided sequential dataset or member, used to

//* define customized operation of DSNTPSMP in this APPLENV.

//*CFGTPSMP DD DISP=SHR,DSN=

//*

//**** Workfiles required by the SQL Procedures Processor

//SQLSRC DD UNIT=SYSALLDA,SPACE=(23440,(20,20)),

// DCB=(RECFM=FB,LRECL=80,BLKSIZE=23440)

//SQLPRINT DD UNIT=SYSALLDA,SPACE=(23476,(20,20)),

// DCB=(RECFM=VB,LRECL=137,BLKSIZE=23476)

//SQLTERM DD UNIT=SYSALLDA,SPACE=(23476,(20,20)),

// DCB=(RECFM=VB,LRECL=137,BLKSIZE=23476)

//SQLOUT DD UNIT=SYSALLDA,SPACE=(23476,(20,20)),

// DCB=(RECFM=VB,LRECL=137,BLKSIZE=23476)

//SQLCPRT DD UNIT=SYSALLDA,SPACE=(23476,(20,20)),

// DCB=(RECFM=VB,LRECL=137,BLKSIZE=23476)

//SQLUT1 DD UNIT=SYSALLDA,SPACE=(23440,(20,20)),

// DCB=(RECFM=FB,LRECL=80,BLKSIZE=23440)

//SQLUT2 DD UNIT=SYSALLDA,SPACE=(23440,(20,20)),

// DCB=(RECFM=FB,LRECL=80,BLKSIZE=23440)

//SQLCIN DD UNIT=SYSALLDA,SPACE=(32000,(20,20))

//SQLLIN DD UNIT=SYSALLDA,SPACE=(3200,(30,30)),

// DCB=(RECFM=FB,LRECL=80,BLKSIZE=3200)

//SQLDUMMY DD DUMMY

//SYSMOD DD UNIT=SYSALLDA,SPACE=(23440,(20,20)),

// DCB=(RECFM=FB,LRECL=80,BLKSIZE=23440)

JAVA 語言應用準備的存儲過程

對與 JAVA 語言編寫的存儲過程,由于主機上的 JAVA 是運行在 USS 下,所以需要指定指定 JAVA 運行環境,見啟動過程中的 JAVAENV 所指定的數據集。

清單6. JAVA 存儲過程對應的STC作業

//DB11WLMJ PROC APPLENV=DB11WLM_JAVA,DB2SSN=DSN,RGN=0K,NUMTCB=5

//IEFPROC EXEC PGM=DSNX9WLM,REGION=&RGN,TIME=NOLIMIT,

// PARM='&DB2SSN,&NUMTCB,&APPLENV'

//STEPLIB DD DISP=SHR,DSN=prefix.SCEERUN

// DD DISP=SHR,DSN=prefix.SDSNEXIT

// DD DISP=SHR,DSN=prefix.SDSNLOAD

//JAVAENV DD DISP=SHR,DSN=prefix.DB11WLMJ.JAVAENV

//JSPDEBUG DD SYSOUT=*

//JAVAOUT DD PATH='/V1R7/USR/db2a10/JAVAOUT.TXT',

// PATHOPTS=(ORDWR,OCREAT,OAPPEND),

// PATHMODE=(SIRUSR,SIWUSR,SIRGRP,SIWGRP,SIROTH,SIWOTH)

//JAVAERR DD PATH='/V1R7/USR/db2a10/JAVAERR.TXT',

// PATHOPTS=(ORDWR,OCREAT,OAPPEND),

// PATHMODE=(SIRUSR,SIWUSR,SIRGRP,SIWGRP,SIROTH,SIWOTH)

其中 JAVAENV 指定 JAVA 運行環境定義,JAVAENV 文件的內容,舉一例子做參考:

清單7. JAVAENV 配置文件信息

ENVAR('_CEE_ENVFILE=/u/db2tdbg/nolimit.txt',

'JAVA_HOME=/u/java/J1.4'),

MSGFILE(JSPDEBUG,,,,ENQ),

XPLINK(ON)

其中 nolimit.txt 的配置信息如下:

清單8. JAVAENV 配置文件中 nolimit.內容信息

LIBPATH=/griv2r2/lib:/usr/lpp/db2810/lib

CLASSPATH=/egfv1r1/egfsproc.jar:/usr/lpp/db2810/classes/db2j2classes.zip

:/u/java/J1.4/lib/charsets.jar

DB2_HOME=/usr/lpp/db2810/

WORK_DIR=/u/db2tdbg

TMSUFFIX=/griv2r2/griserver.jar:/griv2r2/griobjects.jar

:/griv2r2/xercesImpl.jar:/griv2r2/xmlapis.jar

:/griv2r2/grinls.jar:/griv2r2/griuf.jar:/griv2r2/bicompare.jar

PATH=/u/java/J1.4/bin

DB2SQLJPROPERTIES=/u/db2tdbg/db2sqljjdbc.properties

STEPLIB=SYS1.DSN810.PE01.SDSNEXIT:DSN810.SDSNLOAD:DSN810.SDSNLOD2

JAVA_HOME=/u/java/J1.4

其中 /u/db2tdbg/db2sqljjdbc.properties 的配置信息為:

清單9.JAVAENV 配置文件 db2sqljjdbc.properties 配置信息

DB2SQLJSSID=PE11

DB2SQLJPLANNAME=DSNJDBC

DB2SQLJ_TRACE_FILENAME=/tmp/javatrc.db2tdbg

DB2CURSORHOLD=YES

DB2SQLJMULTICONTEXT=YES

DB2SQLJATTACHTYPE=RRSAF

DB2SQLJDBRMLIB=DSNPE01.V8.DBRMLIB.DATA

DB2CURSORHOLD=YES

db2.connpool.max.size=100

db2.jdbc.profile.pathname=/usr/lpp/db2810/classes/DSNJDBC_JDBCProfile.ser

最后,用戶可以通過配置客戶端來連接 DB2 子系統使用存儲過程提供的功能,在連接前,需要保證在服務器端 DDF(Distributed Data Facility)已經配置并正常啟動。

在DB2命令窗口里輸入以下命令:

清單10. DB2 分布式連接配置命令

db2 catalog tcpip node remote server

db2 catalog dcs database as

db2 catalog database as

at node authentication DCS

以上信息可以通過在 MVS console 輸入以下命令–DISPLAY DDF 命令來確定 DB2 子系統的 DB2 location,IP 地址和 TCP 端口號等連接信息。在正確配置好客戶端后,我們可以通過以下命令來連接 DB2 子系統:

清單11. DB2分布式連接命令

db2 connect to user using

標簽: DB2 數據庫
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
综合激情一区| 鲁大师成人一区二区三区| 亚洲69av| 亚洲69av| 国产精品中文字幕亚洲欧美| 亚洲乱码久久| 国产日韩专区| 丝袜国产日韩另类美女| 日韩影院在线观看| 亚洲精品一级二级三级| 日韩中出av| 亚洲精品观看| 国产亚洲字幕| 国产一区二区三区不卡视频网站| 精品一区二区三区四区五区| jizzjizz中国精品麻豆| 亚洲日本网址| 亚洲小说欧美另类婷婷| 免费视频久久| 97se亚洲| 国产在线观看91一区二区三区| 精品国产18久久久久久二百| 久久精品人人| 另类中文字幕国产精品| 不卡视频在线| 亚洲狼人精品一区二区三区| 欧美日韩一区二区三区不卡视频 | 亚洲香蕉视频| 在线观看一区| 久久不卡国产精品一区二区| 色婷婷综合网| 91久久亚洲| 国产欧美日韩影院| 日本在线高清| 快she精品国产999| 国产亚洲人成a在线v网站| 精品一区不卡| 伊人久久亚洲热| 91免费精品国偷自产在线在线| 久久精品网址| 亚州av乱码久久精品蜜桃| 少妇精品在线| 成人在线免费观看网站| 久久九九99| 一区二区国产在线观看| 精品一区二区三区中文字幕视频| 久久国产影院| 亚洲精品欧美| 日韩中文欧美| 日韩高清一区| 久久国产中文字幕| 国产乱子精品一区二区在线观看| 精品免费av在线| 视频一区中文字幕精品| 老牛影视精品| 亚洲人成网站在线在线观看| 精品久久91| 人人爽香蕉精品| 久久一区欧美| 天堂av在线一区| 福利在线一区| 伊人www22综合色| 国产一区二区精品福利地址| 美女久久一区| а√天堂8资源在线| 综合亚洲色图| 久久美女精品| 精品一区二区三区亚洲| 亚洲无线观看| 欧美日韩精品免费观看视欧美高清免费大片 | 亚洲作爱视频| 欧美国产中文高清| 好吊日精品视频 | 国产欧美一区二区三区米奇| 一区二区小说| 国产精品sm| 亚洲一区二区三区四区电影| 国产白浆在线免费观看| 婷婷五月色综合香五月| 欧美精品日日操| 国产精品成人自拍| 色综合视频一区二区三区日韩 | 国内自拍视频一区二区三区| 午夜一级在线看亚洲| 久久久久久网| 国产精品视频一区视频二区| 亚洲人成亚洲精品| 国产亚洲在线观看| 日韩欧美国产精品综合嫩v| 久久国产麻豆精品| 亚洲精品韩国| 日韩一区二区免费看| 日韩精品第一区| 国产亚洲久久| 蜜桃视频在线观看一区二区| 国产99久久| sm捆绑调教国产免费网站在线观看| 国产日产高清欧美一区二区三区| 视频一区在线播放| 一区福利视频| 久久九九精品| 日本久久成人网| caoporn视频在线| 国语精品一区| 久久精品伊人| 国产精品v一区二区三区| 日韩成人精品一区二区三区| 免费日本视频一区| 午夜电影亚洲| 亚洲黑丝一区二区| 日韩精品免费一区二区三区| 国产精品99视频| 精品一区二区三区四区五区| 欧美黄色一区二区| 久久国产精品美女| 国产欧美大片| 久久黄色影视| 国产精品一区高清| 国产精品亚洲综合色区韩国| 日本久久一区| 国产一级成人av| 国产精品一页| 欧美黑人巨大videos精品| 国产毛片久久久| 免费在线亚洲欧美| 精品国产精品久久一区免费式 | 首页国产欧美久久| 蜜臀av亚洲一区中文字幕| 免费看欧美美女黄的网站| 欧美专区在线| 深夜福利一区| 欧美性www| 国产精品激情电影| 国产日韩欧美一区| 免费视频一区二区三区在线观看| 嫩呦国产一区二区三区av| 国内精品麻豆美女在线播放视频| 黑森林国产精品av| 欧美日韩精品在线一区| 亚洲激精日韩激精欧美精品| 视频一区免费在线观看| 亚州av一区| 国产精品一区二区三区四区在线观看| 欧美激情福利| 欧洲亚洲一区二区三区| 999在线观看精品免费不卡网站| 蜜桃一区二区三区在线| 7777精品| 麻豆精品一区二区综合av| 国产在线观看91一区二区三区| 黑森林国产精品av| 五月婷婷六月综合| 日韩中文字幕无砖| 精品国产中文字幕第一页| 亚洲风情在线资源| 最新日韩av| 日韩和欧美一区二区| 欧美成人精品一级| 婷婷综合六月| 久热综合在线亚洲精品| 日韩高清不卡在线| 久久久久久夜| 亚洲欧美日韩国产一区| 欧美亚洲网站| 色网在线免费观看| 国产精品普通话对白| 欧美一区自拍| 欧美一级鲁丝片| 亚洲欧美日韩国产一区二区| 国产欧美日韩综合一区在线播放| bbw在线视频| 久久亚洲欧洲| 久久天堂影院| 亚洲激精日韩激精欧美精品| 国产精品中文字幕制服诱惑| 久久久久久久久久久妇女| 无码日韩精品一区二区免费| 五月天av在线| 亚洲精品美女91| 欧美xxxx中国| 丝袜美腿亚洲色图| 精品91福利视频| 丝袜美腿亚洲色图| 精品色999| 免费高清在线一区| 日韩88av| 天堂久久av| 欧美aa在线观看| 日韩精品免费视频一区二区三区| 日韩88av| 亚洲精品影视| 日韩精品诱惑一区?区三区| 亚洲日本在线观看视频| 国产一区二区三区日韩精品| 香蕉成人久久| 精品亚洲精品| 亚洲开心激情| 国产91一区| 精品久久久久中文字幕小说| 亚洲精品日韩久久|