久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術(shù)文章
文章詳情頁

講解DB2數(shù)據(jù)庫編程所應(yīng)掌握的基本知識

瀏覽:119日期:2023-11-08 13:40:36
1. DB2數(shù)據(jù)庫編程

◆1.1 建存儲過程時Create 后一定不要用TAB鍵

create procedure

的create后只能用空格,而不可用tab健,否則編譯會通不過。

切記,切記。

◆1.2 使用臨時表

要注意,臨時表只能建在user tempory tables space 上,如果database只有system tempory table space是不能建臨時表的。

另外,DB2的臨時表和sybase及oracle的臨時表不太一樣,DB2的臨時表是在一個session內(nèi)有效的。所以,如果程序有多線程,最好不要用臨時表,很難控制。

建臨時表時最好加上 with replace選項,這樣就可以不顯示的drop 臨時表,建臨時表時如果不加該選項而該臨時表在該session內(nèi)已創(chuàng)建且沒有drop,這時會發(fā)生錯誤。

◆1.3 從數(shù)據(jù)表中取指定前幾條記錄

select * from tb_market_code fetch first 1 rows only

但下面這種方式不允許:

select market_code into v_market_code from tb_market_code fetch first 1 rows only;

選第一條記錄的字段到一個變量以以下方式代替:

declare v_market_code char(1); declare cursor1 cursor for select market_code from tb_market_code fetch first 1 rows only for update; open cursor1; fetch cursor1 into v_market_code; close cursor1;

◆1.4 游標的使用

注意commit和rollback

使用游標時要特別注意如果沒有加with hold 選項,在Commit和Rollback時,該游標將被關(guān)閉。Commit 和Rollback有很多東西要注意。特別小心。

游標的兩種定義方式:

一種為:

declare continue handler for not found begin set v_notfound = 1; end; declare cursor1 cursor with hold for select market_code from tb_market_code for update; open cursor1; set v_notfound=0; fetch cursor1 into v_market_code; while v_notfound=0 Do --work set v_notfound=0; fetch cursor1 into v_market_code; end while; close cursor1;

這種方式使用起來比較復(fù)雜,但也比較靈活。特別是可以使用with hold 選項。如果循環(huán)內(nèi)有commit或rollback 而要保持該cursor不被關(guān)閉,只能使用這種方式。

另一種為:

pcursor1: for loopcs1 as cousor1 cursor as select market_code as market_code from tb_market_code for update do end for;

這種方式的優(yōu)點是比較簡單,不用(也不允許)使用open,fetch,close。

但不能使用with hold 選項。如果在游標循環(huán)內(nèi)要使用commit,rollback則不能使用這種方式。如果沒有commit或rollback的要求,推薦使用這種方式(看來For這種方式有問題)。

修改游標的當前記錄的方法

update tb_market_code set market_code='0' where current of cursor1;

不過要注意將cursor1定義為可修改的游標

declare cursor1 cursor for select market_code from tb_market_code for update;

for update 不能和GROUP BY、 DISTINCT、 ORDER BY、 FOR READ ONLY及UNION, EXCEPT, or INTERSECT但 UNION ALL除外)一起使用。

◆1.5 類似decode的轉(zhuǎn)碼操作

oracle中有一個函數(shù)

select decode(a1,'1','n1','2','n2','n3') aa1 from

db2沒有該函數(shù),但可以用變通的方法。

select case a1 when '1' then 'n1' when '2' then 'n2' else 'n3' end as aa1 from

◆1.6 類似charindex查找字符在字串中的位置

Locate(‘y’,’dfdasfay’)

查找’y’ 在’dfdasfay’中的位置。

◆1.7 類似datedif計算兩個日期的相差天數(shù)

days(date(‘2001-06-05’)) – days(date(‘2001-04-01’))

days 返回的是從 0001-01-01 開始計算的天數(shù)

◆1.8 寫UDF的例子

C寫見sqllibsamplescliudfsrv.c

◆1.9 創(chuàng)建含identity值(即自動生成的ID)的表

建這樣的表的寫法:

CREATE TABLE test (t1 SMALLINT NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 500, INCREMENT BY 1), t2 CHAR(1));

在一個表中只允許有一個identity的column。

◆1.10 預(yù)防字段空值的處理

SELECT DEPTNO ,DEPTNAME ,COALESCE(MGRNO ,'ABSENT'),ADMRDEPT FROM DEPARTMENT

COALESCE函數(shù)返回()中表達式列表中第一個不為空的表達式,可以帶多個表達式。

和oracle的isnull類似,但isnull好象只能兩個表達式。

◆1.11 取得處理的記錄數(shù)

declare v_count int; update tb_test set t1=’0’ where t2=’2’; --檢查修改的行數(shù),判斷指定的記錄是否存在 get diagnostics v_ count=ROW_COUNT;

只對update,insert,delete起作用.

不對select into 有效

◆1.12 從存儲過程返回結(jié)果集(游標)的用法

(1)建一sp返回結(jié)果集

CREATE PROCEDURE DB2INST1.Proc1 ( ) LANGUAGE SQL result sets 2(返回兩個結(jié)果集) ------------------------------------------------------------------------ -- SQL 存儲過程 ------------------------------------------------------------------------ P1: BEGIN declare c1 cursor with return to caller for select market_code from tb_market_code; --指定該結(jié)果集用于返回給調(diào)用者 declare c2 cursor with return to caller for select market_code from tb_market_code; open c1; open c2; END P1

(2)建一SP調(diào)該sp且使用它的結(jié)果集

CREATE PROCEDURE DB2INST1.Proc2 ( out out_market_code char(1)) LANGUAGE SQL ------------------------------------------------------------------------ -- SQL 存儲過程 ------------------------------------------------------------------------ P1: BEGIN declare loc1,loc2 result_set_locator varying; --建立一個結(jié)果集數(shù)組 call proc1; --調(diào)用該SP返回結(jié)果集。 associate result set locator(loc1,loc2) with procedure proc1; --將返回結(jié)果集和結(jié)果集數(shù)組關(guān)聯(lián) allocate cursor1 cursor for result set loc1; allocate cursor2 cursor for result set loc2; --將結(jié)果集數(shù)組分配給cursor fetch cursor1 into out_market_code; --直接從結(jié)果集中賦值 close cursor1; END P1

(3)動態(tài)SQL寫法

DECLARE CURSOR C1 FOR STMT1; PREPARE STMT1 FROM 'ALLOCATE C2 CURSOR FOR RESULT SET ?';

(4)注意:

一、 如果一個sp調(diào)用好幾次,只能取到最近一次調(diào)用的結(jié)果集。

二、 allocate的cursor不能再次open,但可以close,是close sp中的對應(yīng)cursor。

◆1.13 類型轉(zhuǎn)換函數(shù)

select cast ( current time as char(8)) from tb_market_code

◆1.14 存儲過程的互相調(diào)用

目前,c sp可以互相調(diào)用。

Sql sp 可以互相調(diào)用,

Sql sp 可以調(diào)用C sp,

但C sp 不可以調(diào)用Sql sp(最新的說法是可以)。

◆1.15 C存儲過程參數(shù)注意

create procedure pr_clear_task_ctrl( IN IN_BRANCH_CODE char(4), IN IN_TRADEDATE char(8), IN IN_TASK_ID char(2), IN IN_SUB_TASK_ID char(4), OUT OUT_SUCCESS_FLAG INTEGER ) DYNAMIC RESULT SETS 0 LANGUAGE C PARAMETER STYLE GENERAL WITH NULLS(如果不是這樣,sql 的sp將不能調(diào)用該用c寫的存儲過程,產(chǎn)生保護性錯誤) NO DBINFO FENCED MODIFIES SQL DATA EXTERNAL NAME 'pr_clear_task_ctrl!pr_clear_task_ctrl'@

◆1.16 存儲過程fence及unfence

fence的存儲過程單獨啟用一個新的地址空間,而unfence的存儲過程和調(diào)用它的進程使用同一個地址空間。一般而言,fence的存儲過程比較安全。有時一些特殊的要求,如要取調(diào)用者的pid,則fence的存儲過程會取不到,而只有unfence的能取到。

◆1.17 SP錯誤處理用法

如果在SP中調(diào)用其它的有返回值的,包括結(jié)果集、臨時表和輸出參數(shù)類型的SP,DB2會自動發(fā)出一個SQLWarning。而在我們原來的處理中對于SQLWarning都會插入到日志,這樣子最后會出現(xiàn)多條SQLCODE=0的警告信息。

處理辦法:

定義一個標志變量,比如DECLARE V_STATUS INTEGER DEFAULT 0,

在CALL SPNAME之后, SET V_STATUS = 1,

DECLARE CONTINUE HANDLER FOR SQLWARNING

BEGIN

IF V_STATUS <> 1 THEN

--警告處理,插入日志

SET V_STATUS = 0;

END IF;

END;

◆1.18 import用法

db2 import from gh1.out of DEL messages err.txt insert into db2inst1.tb_dbf_match_ha

注意要加schma。

◆1.19 values的使用

如果有多個 set 語句給變量付值,最好使用values語句,改寫為一句。這樣可以提高效率。

但要注意,values不能將null值付給一個變量。

values(null) into out_return_code;

這個語句會報錯的。

◆1.20 給select 語句指定隔離級別

select * from tb_head_stock_balance with ur

◆1.21 atomic及not atomic區(qū)別

atomic是將該部分程序塊指定為一個整體,其中任何一個語句失敗,則整個程序塊都相當于沒做,包括包含在atomic塊內(nèi)的已經(jīng)執(zhí)行成功的語句也相當于沒做,有點類似于transaction。

2.DB2編程性能注意

◆2.1 大數(shù)據(jù)的導(dǎo)表

應(yīng)該是export后再load性能更好,因為load不寫日志。比select into 要好。

◆2.2 SQL語句盡量寫復(fù)雜SQL

盡量使用大的復(fù)雜的SQL語句,將多而簡單的語句組合成大的SQL語句對性能會有所改善。DB2的 SQL Engieer對復(fù)雜語句的優(yōu)化能力比較強,基本上不用當心語句的性能問題。Oracle 則相反,推薦將復(fù)雜的語句簡單化, SQL Engieer的優(yōu)化能力不是特別好。這是因為每一個SQL語句都會有reset SQLCODE和SQLSTATE等各種操作,會對數(shù)據(jù)庫性能有所消耗。一個總的思想就是盡量減少SQL語句的個數(shù)。

◆2.3 SQL SP及C SP的選擇

首先,C的sp的性能比sql 的sp 的要高。一般而言,SQL語句比較復(fù)雜,而邏輯比較簡單,sql sp 與 c sp 的性能差異會比較小,這樣從工作量考慮,用SQL寫比較好。而如果邏輯比較復(fù)雜,SQL比較簡單,用c寫比較好。

◆2.4 查詢的優(yōu)化(HASH及RR_TO_RS)

db2set DB2_HASH_JOIN=Y (HASH排序優(yōu)化)

指定排序時使用HASH排序,這樣db2在表join時,先對各表做hash排序,再join,這樣可以大大提高性能。

劇沈剛說做實驗,7個一千萬條記錄表的做join取10000條記錄,再沒有索引的情況下 72秒。

db2set DB2_RR_TO_RS=Y

該設(shè)置后,不能定義RR隔離級別,如果定義RR,db2也會自動降為RS.

這樣,db2不用管理Next key,可以少管理一些東西,這樣可以提高性能。

◆2.5 避免使用count(*) 及exists的方法

(1)首先要避免使用count(*)操作,因為count(*)基本上要對表做全部掃描一遍,如果使用很多會導(dǎo)致很慢。

(2)exists比count(*)要快,但總的來說也會對表做掃描,它只是碰到第一條符合的記錄就停下來。

如果做這兩中操作的目的是為select into服務(wù)的話,就可以省略掉這兩步。

直接使用select into 選擇記錄中的字段。

如果是沒有記錄選擇到的話,db2 會將 sqlcode=100 和 sqlstate=’20000’

如果是有多條記錄的話,db2會產(chǎn)生一個錯誤。

程序可以創(chuàng)建 continue handler for exception

continue handler for not found 來檢測。

這是最快速的方法。

(3)如果是判斷是不是一條,可以使用游標來計算,用一個計數(shù)器,累加,達到預(yù)定值后就離開。這個速度也比count(*) 要快,因為它只要掃描到預(yù)定值就不再掃描了,不用做全表的scan,不過它寫起來比較麻煩。

3. DB2表及sp管理

◆3.1 看存儲過程文本

select text from syscat.procedures where procname='PROC1';

◆3.2 看表結(jié)構(gòu)

describe table syscat.procedures describe select * from syscat.procedures

◆3.3 查看各表對sp的影響(被哪些sp使用)

select PROCNAME from SYSCAT.PROCEDURES where SPECIFICNAME in(select dname from sysibm.sysdependencies where bname in ( select PKGNAME from syscat.packagedep where bname='TB_BRANCH'))

◆3.4 查看sp使用了哪些表

select bname from syscat.packagedep where btype='T' and pkgname in(select bname from sysibm.sysdependencies where dname in (select specificname from syscat.procedures where procname='PR_CLEAR_MATCH_DIVIDE_SHA'))

◆3.5 查看function被哪些sp使用

select PROCNAME from SYSCAT.PROCEDURES where SPECIFICNAME in(select dname from sysibm.sysdependencies where bname in ( select PKGNAME from syscat.packagedep where bname in (select SPECIFICNAME from SYSCAT.functions where funcname='GET_CURRENT_DATE')))

使用function時要注意,如果想drop 掉該function必須要先將調(diào)用該function的其它存儲過程全部drop掉。

必須先創(chuàng)建function,調(diào)用該function的sp才可以創(chuàng)建成功。

◆3.6 修改表結(jié)構(gòu)

一次給一個表增加多個字段

db2 'alter table tb_test add column t1 char(1) add column t2 char(2) add column t3 int'

4.DB2系統(tǒng)管理

◆4.1 DB2安裝

在Windows 98 下安裝db2 7.1 或其他版本,如果有Jdbc錯誤或者是Windwos 98不能啟動,則將autoexec.bat 中的內(nèi)容用如下內(nèi)容替換:

C:PROGRA~1TRENDP~1PCSCAN.EXE C: C:WINDOWSCOMMAND /NS /WIN95 rem C:WINDOWSCOMMAND.COM /E:32768 REM [Header] REM [CD-ROM Drive] REM [Miscellaneous] REM [Display] set PATH=%PATH%;C:MSSQLBINN;C:PROGRA~1SQLLIBBIN; C:PROGRA~1SQLLIBFUNCTION;C:PROGRA~1SQLLIBSAMPLESREPL; C:PROGRA~1SQLLIBHELP IF EXIST C:PROGRA~1IBMIMNNQIMQENV.BAT CALL C:PROGRA~1IBMIMNNQIMQENV.BAT IF EXIST C:PROGRA~1IBMIMNNQIMNENV.BAT CALL C:PROGRA~1IBMIMNNQIMNENV.BAT set DB2INSTANCE=DB2 set CLASSPATH=.;C:PROGRA~1SQLLIBjavadb2java.zip; C:PROGRA~1SQLLIBjavaruntime.zip;C:PROGRA~1SQLLIBjavasqlj.zip; C:PROGRA~1SQLLIBbin set MDIS_PROFILE=C:PROGRA~1SQLLIBMETADATAPROFILES set LC_ALL=ZH_CN set INCLUDE=C:PROGRA~1SQLLIBINCLUDE;C:PROGRA~1SQLLIBLIB; C:PROGRA~1SQLLIBTEMPLATESINCLUDE set LIB=C:PROGRA~1SQLLIBLIB set DB2PATH=C:PROGRA~1SQLLIB set DB2TEMPDIR=C:PROGRA~1SQLLIB set VWS_TEMPLATES=C:PROGRA~1SQLLIBTEMPLATES set VWS_LOGGING=C:PROGRA~1SQLLIBLOGGING set VWSPATH=C:PROGRA~1SQLLIB set VWS_FOLDER=IBM DB2 set ICM_FOLDER=信息目錄管理器

◆4.2 創(chuàng)建Database

create database head using codeset IBM-eucCN territory CN;

這樣可以支持中文。

◆4.3 手工做數(shù)據(jù)庫遠程(別名)配置

db2 catalog tcpip node node1 remote 172.28.200.200 server 50000 db2 catalog db head as test1 at node node1

然后既可使用:

db2 connect to test1 user … using …

連上head庫了。

◆4.4 停止啟動數(shù)據(jù)庫實例

db2start db2stop (force)

◆4.5 連接數(shù)據(jù)庫及看當前連接數(shù)據(jù)庫

連接數(shù)據(jù)庫

db2 connect to head user db2inst1 using db2inst1

當前連接數(shù)據(jù)庫

db2 connect

◆4.6 停止啟動數(shù)據(jù)庫head

db2 activate db head

db2 deactivate db head

要注意的是,如果有連接,使用deactivate db 不起作用。

如果是用activate db啟動的數(shù)據(jù)庫,一定要用deactivate db才會停止該數(shù)據(jù)庫。(當然如果是db2stop也會停止)。

使用activate db,這樣可以減少第一次連接時的等待時間。

Database如果不是使用activate db啟動而是通過連接數(shù)據(jù)庫而啟動的話,當所有的連接都退出后,db也就自動停止。

◆4.7 查看及停止數(shù)據(jù)庫當前的應(yīng)用程序

查看應(yīng)用程序:

db2 list applications show detail

授權(quán)標識 | 應(yīng)用程序名 | 應(yīng)用程序句柄 | 應(yīng)用程序標識 | 序號# | 代理程序 | 協(xié)調(diào)程序 | 狀態(tài) | 狀態(tài)更改時間 | DB 名 | DB 路徑 |

| 節(jié)點號 | pid/線程

其中:

1、應(yīng)用程序標識的第一部分是應(yīng)用程序的IP地址,不過是已16進制表示的。

2、pid/線程即是在unix下看到的線程號。

停止應(yīng)用程序:

db2 'force application(236)'

db2 “force application all”

其中:該236是查看中的應(yīng)用程序句柄。

◆4.8 查看本instance下有哪些database

db2 LIST DATABASE DIRECTORY [ on /home/db2inst1 ]

◆4.9 查看及更改數(shù)據(jù)庫head的配置

請注意,在大多數(shù)情況下,更改了數(shù)據(jù)的配置后,只有在所有的連接全部斷掉后才會生效。

查看數(shù)據(jù)庫head的配制

db2 get db cfg for head

更改數(shù)據(jù)庫head的某個設(shè)置的值

◆4.9.1 改排序堆的大小

db2 update db cfg for head using SORTHEAP 2048

將排序堆的大小改為2048個頁面,查詢比較多的應(yīng)用最好將該值設(shè)置比較大一些。

◆4.9.2 改事物日志的大小

db2 update db cfg for head using logfilsiz 40000

該項內(nèi)容的大小要和數(shù)據(jù)庫的事物處理相適應(yīng),如果事物比較大,應(yīng)該要將該值改大一點。否則很容易處理日志文件滿的錯誤。

◆4.9.3 出現(xiàn)程序堆內(nèi)存不足時修改程序堆內(nèi)存大小

db2 update db cfg for head using applheapsz 40000

該值不能太小,否則會沒有足夠的內(nèi)存來運行應(yīng)用程序。

◆4.10 查看及更改數(shù)據(jù)庫實例的配置

查看數(shù)據(jù)庫實例配置

db2 get dbm cfg

更改數(shù)據(jù)庫實例配制

◆4.10.1 打開對鎖定情況的監(jiān)控

db2 update dbm cfg using dft_mon_lock on

◆4.10.2 更改診斷錯誤捕捉級別

db2 update dbm cfg using diaglevel 3

0 為不記錄信息

1 為僅記錄錯誤

2 記錄服務(wù)和非服務(wù)錯誤

缺省是3,記錄db2的錯誤和警告

4 是記錄全部信息,包括成功執(zhí)行的信息

一般情況下,請不要用4,會造成db2的運行速度非常慢。

◆4.11 db2環(huán)境變量

db2 重裝后用如下方式設(shè)置db2的環(huán)境變量,以保證sp可編譯將set_cpl 放到AIX上, chmod +x set_cpl, 再運行之。

set_cpl的內(nèi)容:

db2set DB2_SQLROUTINE_COMPILE_COMMAND='xlc_r -g -I$HOME/sqllib/include SQLROUTINE_FILENAME.c -bE:SQLROUTINE_FILENAME.exp -e SQLROUTINE_ENTRY -o SQLROUTINE_FILENAME -L$HOME/sqllib/lib -lc -ldb2' db2set DB2_SQLROUTINE_KEEP_FILES=1

◆4.12 db2命令環(huán)境設(shè)置

db2=>list command options db2=>update command options using C off--或on,只是臨時改變 db2=>db2set db2options=+c --或-c,永久改變

◆4.13 改變隔離級別

DB2SET DB2_SQLROUTINE_PREPOPTS=CS|RR|RS|UR

交互環(huán)境更改session的隔離級別,db2 change isolation to UR,請注意只有沒有連接數(shù)據(jù)庫時可以這樣來改變隔離級別。

◆4.14 管理dbinstance的參數(shù)

get db cfg for head(db) get dbm cfg(instance)

◆4.15 升級后消除版本問題

db2 bind @db2ubind.lst db2 bind @db2cli.lst

◆4.16 查看數(shù)據(jù)庫表的死鎖

再用命令中心查詢數(shù)據(jù)時要注意,如果用了交互式查詢數(shù)據(jù),命令中心將會給所查的記錄加了s鎖.這時如果要update記錄,由于update要使用x鎖,排它鎖,將會處于鎖等待。

首先,將監(jiān)視開關(guān)打開,

db2 update dbm cfg using dft_mon_lock on

快照

db2 get snapshot for Locks on cleardb >snap.log tables bufferpools tablespaces database

然后再看snap.log中的內(nèi)容即可。

對Lock可根據(jù)Application handle(應(yīng)用程序句柄)看每個應(yīng)用程序的鎖的情況。

監(jiān)視完畢后,不要忘了將監(jiān)視器關(guān)閉。

db2 update dbm cfg using dft_mon_lock off

主站蜘蛛池模板: 日本不卡高字幕在线2019 | 91精品国产欧美一区二区成人 | 欧美日韩在线播放 | 蜜桃一区 | 国产成人在线一区二区 | 中文字幕一区二区三区乱码在线 | 欧美一级免费大片 | 色吧久久 | 一级毛片久久久 | 在线观看免费av电影 | 国产www在线 | 国产女人高潮视频在线观看 | 国产乱码精品一区二区三区五月婷 | 日韩性在线 | 亚洲国产伊人 | 精品亚洲一区二区三区四区五区 | 欧美视频在线免费 | 精品国产乱码久久久久久1区二区 | 一二三区字幕免费观看av | 日日摸日日爽 | 国产成人精品一区二区三区视频 | av网站免费观看 | 国产成人午夜视频 | 九九视频在线观看视频6 | 欧美精品久久久 | 精品国产乱码久久久久久蜜柚 | 91亚洲免费| 日韩国产在线观看 | 国产精品综合一区二区 | www.日韩在线视频 | 国家aaa的一级看片 h片在线看 | 国产xxxx成人精品免费视频频 | 欧美日韩亚洲另类 | 久久久资源 | 久久99久久99精品 | 成人国产精品久久 | 成人在线看片网站 | 亚洲一区二区三区久久 | 色综合一区二区三区 | 精品国产18久久久久久二百 | 国产精品日本一区二区在线播放 | 久久精品国产一区二区三区不卡 | 久久高清毛片 | 91精品国产综合久久久久久漫画 | 国产69精品99久久久久久宅男 | 亚洲成人1区 | 国产免费自拍 | 国产综合精品一区二区三区 | 99热这里有精品 | 欧美激情综合色综合啪啪五月 | 中文字幕 亚洲一区 | 91亚洲日本aⅴ精品一区二区 | 日韩电影a| 在线精品一区二区 | 国产一区二区三区视频在线观看 | 国产激情在线观看视频 | 免费黄色毛片视频 | 日韩成人在线观看 | 亚洲欧美国产一区二区 | 国精产品一区二区三区 | 黄色高清视频 | hsck成人网| 一区二区三区四区在线播放 | 自拍偷拍在线视频 | 亚洲一区综合 | 欧美在线一区二区 | 久久精品免费看 | 久久精品欧美一区二区三区不卡 | 99riav国产一区二区三区 | 中文字幕日韩欧美一区二区三区 | 91精品国产色综合久久 | 亚洲福利社区 | 一级大毛片 | 欧美黄色一区 | 69黄在线看片免费视频 | 欧美一级精品 | 国产 一区| 久久久久久亚洲一区二区三区蜜臀 | 亚洲精品一区在线观看 | 国产ts余喵喵和直男多体位 | 欧美日韩亚洲一区二区 | 久久久91精品国产一区二区三区 | 久久国产精品一区二区三区 | 老司机在线精品视频 | 亚洲精品在线免费播放 | 欧美大片免费高清观看 | 午夜影剧院 | 性做久久久久久 | 777xacom | 婷婷亚洲五月 | 91精品啪啪 | 五月天婷婷丁香 | 国产成人精品亚洲日本在线观看 | 一区二区三区精品视频免费看 | 久久一| 国产欧美在线视频 | 91男女视频 | www..99热| 国产福利91精品 | 色综合一区 | 成人精品视频在线观看 | 日本一级毛片免费看 | 色玖玖综合 | 成人激情视频在线播放 | 国产成人精品一区二区三区四区 | 日韩一区二区三区在线观看 | 正在播放欧美 | 国内av网站| 精品国产91乱码一区二区三区 | 久久国产精品免费一区二区三区 | 成人免费网站视频 | 免费看国产片在线观看 | 精品国产99 | 成年人看的羞羞网站 | 亚洲国产精品一区 | 无码一区二区三区视频 | 午夜免费小视频 | 久久九九这里只有精品 | 一区在线视频 | 日韩在线免费 | 欧美一区二区三区在线观看视频 | 欧美日本一区 | 欧美成人黑人xx视频免费观看 | 精品国产一区二区三区日日嗨 | 在线日韩视频 | 欧美一区二区久久久 | 免费不卡视频 | 国产一区二区黑人欧美xxxx | 亚洲a人| 91精品国产91久久久久久黑人 | 国产亚洲久久 | 欧美成人精品在线视频 | 看毛片网站 | 最新免费av网站 | 久热热| 久久国产精品99久久久久久老狼 | 久久精品国产精品青草 | 欧美另类综合 | 91av久久| 九色在线 | 国产在线精品一区二区 | 91麻豆久久久 | www.欧美日韩 | 日韩视频在线观看中文字幕 | 国产精品久久久久婷婷二区次 | 欧美日韩成人激情 | 欧美成在线观看 | 爱干视频 | 欧洲精品久久久 | 亚洲黄色成人 | 久久久久久中文字幕 | 久久夜视频 | 亚洲国产精品成人无久久精品 | 91麻豆精品久久久久蜜臀 | 日本成人片网站 | 黄色a视频| 国内精品一区二区三区 | 亚洲第一区在线 | 特级淫片日本高清视频免费 | 羞羞视频在线观看入口 | 中文字幕在线观看一区二区三区 | 99re6在线视频精品免费 | 久久久久久久久国产成人免费 | 在线观看精品91福利 | 91精品久久久久久久久中文字幕 | 狠狠爱网站 | 日本视频黄| 成人在线观看免费视频 | 中文字幕1区 | 国产欧美日韩 | 国产传媒一区 | 久久精品中文 | 欧美一区二区三区在线观看 | www久久国产 | 精品美女在线观看视频在线观看 | 欧美日韩精品一区二区三区蜜桃 | 中文字幕精品一区二区三区精品 | 在线视频这里只有精品 | 超碰一区二区三区 | 日韩精品一区二区三区在线播放 | 真人女人一级毛片免费播放 | 国产精品久久久久久 | 精品久久国产老人久久综合 | 国产高清视频在线观看 | 久久国产精品久久久久久 | 日韩在线中出 | 91在线精品一区二区 | 日日日操 | 亚洲欧美中文日韩v在线观看 | 久久1区 | 成人一级视频 | 三a毛片 | 中文字幕一级 | 91久久久久 | 毛片一区二区 | 青青久久 | 欧美成年黄网站色视频 | 精品亚洲一区二区三区 | 国产一区二区三区在线视频 | 国产精品久久久久久久9999 | 可以免费看黄视频的网站 | 美女天堂av| 狠狠综合久久 | 亚洲国产精品99久久久久久久久 | 中文字幕日韩一区二区三区 | 日本在线观看视频一区 | 韩国精品 | 色综合成人 | 在线日韩欧美 | 一级a性色生活片毛片 | 亚洲免费在线视频 | 国产午夜精品美女视频明星a级 | 日本久久成人 | 在线观看国精产品二区1819 | 91久久精品 | 精品久久久久久国产三级 | 亚洲免费av在线 | 亚洲视频自拍 | 精品免费国产一区二区三区 | 超碰999 | 国产精品国产成人国产三级 | 中文字幕一区二区三区日韩精品 | 色吊丝在线永久观看最新版本 | 精品国产99| 九九精品视频在线观看 | 国产一区二区三区四区五区 | 欧美亚洲另类丝袜综合网动图 | 免费一级毛片 | 天天天天天天天天干 | av一二三四 | 亚洲a级| 国产福利片在线观看 | 欧美电影一区 | 国产精品成人在线 | 在线观看成人av | 综合激情久久 | 韩日免费视频 | 中文字幕在线第一页 | 国产裸体bbb视频 | 国产午夜一区二区三区 | 国产精品成人一区二区三区夜夜夜 | 青青草一区二区三区 | 在线亚洲不卡 | 欧美视频精品 | 国产成人在线视频 | 成人欧美一区二区三区视频xxx | 超级乱淫片国语对白免费视频 | 在线视频91 | 亚洲视频在线观看网址 | 国产成人精品综合 | 欧美日韩中文 | 国产精品久久久久9999鸭 | 亚洲成av | 青青草一区二区 | 成年入口无限观看网站 | 日日干夜夜干 | 日韩精品视频免费看 | 99久久日韩精品视频免费在线观看 | 中文字幕在线观 | 91精品国产99久久久久久红楼 | 亚洲成人一区二区 | 免费亚洲精品 | 懂色一区二区三区av片 | 久久久精品免费视频 | 中文字幕在线观看一区二区三区 | 在线观看国产 | 狠狠操综合网 | 久一区二区三区 | av亚洲在线 | 天堂在线视频 | 成人免费看 | 欧美久久久久久久久久伊人 | 国产成人免费在线 | av毛片免费看 | 精品久久久久久国产 | 欧美黄色大片网站 | 久热伊人| 国内精品视频一区二区三区 | 亚洲精品在线播放 | 久久久精品国产 | 欧美黄 片免费观看 | 毛片国产 | 亚洲国产精品久久 | 久久久蜜桃 | 国产高清视频一区二区 | 看免费毛片 | 96久久久久久 | 亚洲欧美激情另类 | 奇米影视首页 | av网站网址 | 国产污视频在线 | 国产精品久久久久久二区 | 久久久久国产视频 | 亚洲 成人 av | 国产一区二区黑人欧美xxxx | 久久久久久日产精品 | 国产精品久久久久久久毛片 | 青青久久久 | 精品免费视频 | 天堂亚洲 | 国产1级片 | 国产日韩欧美精品一区二区 | 97在线观看视频 | 91精品国产日韩91久久久久久 | 国产a区| 五月婷婷综合激情 | 一区二区三区四区在线播放 | 国产精品爱久久久久久久 | 亚洲人免费视频 | 91精品一二区| 爱干视频 | 成人男女激情免费视频 | 欧美精品一级二级 | 一区三区在线观看 | 色精品视频| 欧美激情在线播放 | 亚洲精品一区二区三区四区高清 | 精品成人免费一区二区在线播放 | 麻豆精品一区二区 | 亚洲网站色| 亚洲欧美综合一区 | 午夜影院色| 欧美电影一区 | 亚洲不卡在线 | 四虎久久精品 | 国产精品一区二区三区免费视频 | 亚洲小视频 | 亚洲一区二区中文字幕在线观看 | 中文字幕av一区 | 久久精品这里热有精品 | 久久亚洲精品国产精品紫薇 | 91精品久久久久久久久久 | 日韩和的一区二区 | 欧美一区二区二区 | 91人人 | 亚洲精美视频 | 国产一区在线看 | 久久久久久久久久久九 | 日韩aⅴ一区二区三区 | 在线视频一区二区 | 亚洲少妇视频 | 色偷偷噜噜噜亚洲男人 | av网站免费观看 | 成人免费大片黄在线播放 | 久久久久综合 | 免费成人在线视频网站 | 9l蝌蚪porny中文自拍 | 91福利视频导航 | 91精品久久久久久久久久小网站 | 国产精品污www一区二区三区 | 动漫泳衣美女 | 色必久久 | 日韩不卡中文字幕 | 91精品国产综合久久福利软件 | 国产3区 | 一区二区三区不卡视频 | 精品久久久久久久久久久久久久久久久久久 | 欧美精品综合在线 | 日韩免费在线观看视频 | 中文字幕在线三区 | 免费一级片 | 日韩靠逼 | 亚洲乱码一区二区 | 色黄视频在线观看 | 亚洲国产青草 | 国产精品网站在线观看 | 国产成人一区 | 国产成人精品一区二区三区在线 | 大陆一级毛片免费视频观看 | 999国产在线视频 | 欧美 | 欧美激情在线精品一区二区三区 | 黄色片网站在线免费观看 | 亚洲精品久久久久久下一站 | 欧美日韩中文 | 99国内精品久久久久久久 | 国产99久久精品一区二区永久免费 | 精品一区二区三区久久 | 99精品一区二区三区 | 婷婷色在线| 91久久在线 | 精品亚洲国产成av人片传媒 | 亚洲精品系列 | 久久99精品久久久 | 成人精品国产 | 亚洲一区二区三区四区在线观看 | 国产精品精品视频一区二区三区 | 欧美激情在线播放 | 在线看国产 | 国产精品视频免费 | 久久久久久91香蕉国产 | 91视频国产网站 | 成人免费精品视频 | 国产免费一区二区三区 | 亚洲欧美日韩一区二区 | 中午字幕在线观看 | 亚洲一本 | 天天操天天干天天干 | av国产精品毛片一区二区小说 | 国产亚洲精品久久久 | 国产精品久久久久久无遮挡 | 美女一区| 一二三四区视频在线观看 | 中文字幕av亚洲精品一部二部 | 性视频网 | www.you日本 | 亚洲一区中文字幕 | 国产成人涩涩涩视频在线观看 | 九九九视频 | 日韩久久久久久 | 91精品国产91久久久久久蜜臀 | 亚洲欧美中文日韩在线v日本 | 啪啪免费网站 | 国产一区二区三区在线 | 午夜国产在线 | 一区二区三区四区在线 | 91极品国产 | 国产拍拍视频 | 成人妇女免费播放久久久 | 亚洲97 | 国产在线视频一区 | caoporn视频 | 精品国产污网站污在线观看15 | 美女一级 | 一区二区三区久久 | 日韩喷潮| 成人在线免费 | 日本亚洲欧美 | 国产看片网站 | 亚洲第一免费看片 | 中文字幕在线观看精品视频 | 成人精品一区 | 青青久久 | 99国产精品99久久久久久 | 日韩欧美一区二区三区久久婷婷 | 久久久久久久久久国产精品 | 欧美一区二区三区四区不卡 | 亚洲精品视频网 | 在线高清av | caoporn国产精品免费公开 | 日本一区二区不卡视频 | 蜜桃av一区二区三区 | 久久国产精品一区二区三区 | 久久国产精品一区二区三区 | 波多野结衣电影一区 | 黄色片免费 | 人人av在线 | 在线观看一级片 | 国产精品久久久久免费 | 亚洲中午字幕 | 午夜男人天堂 | 欧美日韩精品一区二区三区蜜桃 | 国产精品一区二 | 看毛片网站 | 波多野结衣一区二区三区中文字幕 | 亚洲国产成人精品女人久久久 | 国产精品久久国产精品 | 久久精品一区二区三区四区毛片 | 伊人一区二区三区 | 北条麻妃一区二区在线 | 国产亚洲一区二区三区在线观看 | 久久久.com | 超碰在线一区二区三区 | 国产视频h | 日韩精品亚洲专区在线观看 | av入口| 91超碰caoporm国产香蕉 | 久久久久香蕉视频 | 99精品欧美一区二区三区综合在线 | 久久精品免费国产 | 亚洲精品国产剧情久久9191 | 91精品国产99久久久久久红楼 | 久草免费在线视频 | 国产婷婷精品av在线 | 亚洲精品视频在线观看免费视频 | www97影院 | 成人亚洲一区 | 精品一区久久 | 亚洲精品视频在线 | 国产91 在线播放 | 97碰碰碰 | 欧美精品综合 | 国产人成精品一区二区三 | www.国产精品| 日韩中文字幕电影在线观看 | a级黄色毛片免费观看 | 亚洲人视频 | 性色国产 | 激情视频在线观看免费 | 欧美男人天堂 | 天天操网址 | 日韩性色视频 | 偷拍自拍第一页 | 在线日韩视频 | 亚洲国产自产 | 欧美日韩免费 | 亚洲区在线 | 亚洲欧美第一页 | 91麻豆精品国产91久久久更新资源速度超快 | 欧美综合国产精品久久丁香 | 日韩亚洲视频 | 国产看片网站 | 欧美一区永久视频免费观看 | 超碰免费观看 | 国产福利在线观看 | 老黄网站在线观看 | 日韩乱视频 | 在线欧美 | 国产91黄色 | 久久久久久成人 | 精品日韩在线 | 另类免费视频 | 精品视频在线观看 | 在线视频亚洲 | 国产精品欧美一区二区三区 | 日韩高清一区二区 | 丁香久久 | 中文字幕亚洲字幕一区二区 | 久久久久九九九九 | 五月激情综合网 | 国产精品久久视频 | 精品国产乱码久久久久久88av | av国产精品 | 91精品久久久久久久久中文字幕 | www.91av在线 | 国产精品一区在线观看 | a级性生活 | 亚洲欧美视频在线 | 国产区一区 | 欧日韩毛片 | 亚洲精品一区二三区不卡 | 在线免费观看羞羞视频 | 国产亚洲精品美女久久久久久久久久 | 久久久久精| 91爱爱视频| 国产精品久久免费视频在线 | 国产色| 久久国产精品一区二区三区 | 欧美在线观看禁18 | 欧美成人综合在线 | 91亚洲精品在线观看 | 午夜在线影院 | 做a视频免费观看 | 青青久久av北条麻妃海外网 | 免费看国产一级特黄aaaa大片 | 性一交一乱一透一a级 | 成人国产精品久久 | 日韩国产一区二区三区 | 国产成人在线视频 | 久久国产成人 | 久久精品 | 国产有码 | 国产精品2区 | 欧美在线二区 | 国产欧美中文字幕 | 欧美极品视频 | 日日操狠狠操 | 国产精品一区二 | 一级毛片在线播放 | 国产色99精品9i | 亚洲国产精品第一区二区 | 91视频网址| 成人av影片在线观看 | 欧美午夜视频在线观看 | 欧美午夜精品久久久久免费视 | 久久草在线视频 | 免费国产一区二区 | 国产不卡免费视频 | 国产精品视频免费观看 | 亚洲国产aⅴ成人精品无吗 一区视频在线 | 久久国内免费视频 | 老黄网站在线观看 | 综合久久久久久久 | 精品日韩一区 | 91在线免费观看 | 久久成人精品视频 | 午夜四虎 | 久久久国产精品视频 | 99色在线视频 | 国产精品视频一区二区三区 | 久久丝袜| 日本一区二区三区四区 | 妹子干综合 | 欧美a一级| 特大毛片 | 在线观看国产精品一区二区 | 国产乱人伦av在线a 天天碰天天操 | 国语精品久久 | 欧美精品欧美精品系列 | 国产精品一区二区在线观看 | 欧美黄色片 | 一区二区三区免费在线观看 | 久久国产精品免费一区二区三区 | 嫩草私人影院 | 黄毛片| 一道本视频 | 99热精品久久 | 91夜夜蜜桃臀一区二区三区 | 免费在线一区二区 | 91精品国产一区二区 | 国产农村妇女精品一二区 | 国产色视频网站 | 久久99深爱久久99精品 | 99久久精品免费看国产四区 | 中文字幕不卡在线 | 日韩在线视频中文字幕 | 国产色婷婷精品综合在线播放 | 精品久久久久久久久久久久久久 | 色播99| 日韩免费| 四虎影院网站 | 久久久国产精品视频 | 天天干天天操 | 毛片在线免费 | 日韩精品中文字幕在线观看 |