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

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

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

瀏覽:165日期: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久久,三上悠亚国产精品一区二区三区
视频一区二区中文字幕| 国产精品videossex| 久久中文字幕av一区二区不卡| 秋霞影视一区二区三区| 亚洲一区二区毛片| 国产欧美大片| 91精品一区国产高清在线gif | 九九色在线视频| 伊人影院久久| 国产亚洲字幕| 日韩欧美精品综合| 免费在线视频一区| 日本va欧美va精品发布| 三级在线看中文字幕完整版| 国产精品女主播一区二区三区| 欧美亚洲一区二区三区| 国产精品久久久久av电视剧| 亚洲欧美高清| 久久精品伊人| 日韩亚洲在线| 久久精品一本| 丝袜a∨在线一区二区三区不卡| 国产精品美女久久久久久不卡| 久久久久免费av| 日本视频中文字幕一区二区三区| 日韩伦理福利| 青青草国产精品亚洲专区无| 97精品国产| 亚洲精品日本| 日韩成人亚洲| 国产日产精品_国产精品毛片 | 国产日韩精品视频一区二区三区| 97人人精品| 亚洲久草在线| 亚洲综合在线电影| 欧美精品影院| 国产精品嫩草99av在线| 给我免费播放日韩视频| 亚洲精品第一| 激情五月色综合国产精品| 国产精品一区二区三区美女| 伊人成人网在线看| 欧美激情另类| 国产日韩免费| 亚洲一级大片| 欧美日韩三区| 高清不卡亚洲| 国产欧美三级| 蜜臀精品久久久久久蜜臀| 一本大道色婷婷在线| 国产精品2区| 蜜桃视频一区二区三区| 成人va天堂| 国内精品伊人| 久久精品99国产精品| 蜜桃av一区二区三区电影| 亚洲欧洲美洲av| 麻豆成人综合网| 日韩av不卡一区二区| 男女性色大片免费观看一区二区 | 欧美日韩精品在线一区| 国产劲爆久久| 日韩黄色av| 免费在线欧美视频| 国产一区亚洲| 欧美精品日日操| 国产一区二区三区网| 国产日韩在线观看视频| 日韩中文字幕| 只有精品亚洲| 黄色日韩在线| 亚洲国产成人精品女人| 欧洲av不卡| 中文在线а√天堂| 国产精品片aa在线观看| 日韩精品一区二区三区免费视频| 免费视频久久| 红桃视频国产精品| 99视频精品全国免费| 日韩毛片视频| 92国产精品| 天堂av在线| 日本免费一区二区三区四区| 成人小电影网站| 日韩精品诱惑一区?区三区| 极品av在线| 日韩专区精品| 亚洲不卡av不卡一区二区| 特黄特色欧美大片| 亚洲午夜天堂| 日本韩国欧美超级黄在线观看| 日韩久久精品| 日韩精品欧美| 免费国产自久久久久三四区久久 | 日本亚洲最大的色成网站www | 国产美女久久| 日韩av不卡在线观看| 日韩精品欧美精品| 7777精品| 国产精品xxx| 狠狠久久伊人| 在线一区视频观看| 香蕉久久99| 国产高清一区二区| 日韩视频一区| 亚洲一区欧美| 日产欧产美韩系列久久99| 91麻豆精品| 久久香蕉精品香蕉| 电影亚洲精品噜噜在线观看| 久久伦理在线| 国产日韩专区| 亚洲色图网站| 911亚洲精品| 国精品产品一区| 日韩久久电影| 亚洲深夜福利| 日韩精品中文字幕吗一区二区| 国产精品一区二区精品视频观看 | 99视频精品全部免费在线视频| 久久视频一区| 日韩在线一二三区| 国产欧美在线| 久久久久久网| 免费精品国产| 婷婷五月色综合香五月| 久久超级碰碰| 91精品亚洲| 中文字幕一区二区三区四区久久| 国产欧美一区二区三区国产幕精品| 国产一区丝袜| 激情婷婷亚洲| 日精品一区二区三区| 精品国产一区二| av亚洲免费| 日韩av三区| 成人va天堂| 日韩在线电影| 亚洲黄色网址| 蜜臀久久久久久久| 久久永久免费| 91久久中文| 国产精品手机在线播放| 日本精品不卡| 婷婷成人av| 在线观看精品| 亚洲人成高清| 成人在线超碰| 视频一区二区欧美| 精品视频自拍| 日韩精品一级中文字幕精品视频免费观看 | 91看片一区| 亚洲一区二区三区在线免费| 免费在线播放第一区高清av| 香蕉久久99| 国产精品久久久免费| 亚洲香蕉网站| 日韩高清一区在线 | 色黄视频在线观看| 日韩一区二区三区精品 | 久久午夜精品| 国产va免费精品观看精品视频| 久久福利一区| 欧美国产美女| 日韩激情视频网站| 久久蜜桃av| 91亚洲精品视频在线观看| 欧美日韩在线二区| 国产精品伊人| 丝袜美腿亚洲一区二区图片| 国产在线视频欧美一区| 一区二区电影在线观看| 日本不良网站在线观看| 国产免费久久| 丝袜美腿成人在线| 欧美精选视频一区二区| 久久国产三级| 亚洲女人av| 欧美成a人免费观看久久| 久久超级碰碰| 亚洲ww精品| 成人久久久久| 久久精品国产亚洲一区二区三区| 一区二区高清| 自拍日韩欧美| 中文字幕在线免费观看视频| 国产日产一区| 中文字幕日韩高清在线| 九九在线精品| 日韩免费久久| 精品美女在线视频| 国产日本精品| 亚洲人www| 激情91久久| 久久精品卡一| 国产日韩电影| 欧美a级一区二区| 日韩二区在线观看| 日韩中文字幕亚洲一区二区va在线 | 国产欧美亚洲精品a|