觀察改變索引對查詢優化方案的影響的數據庫系統的制作方法

            文檔序號:6516070閱讀:232來源:國知局

            專利名稱::觀察改變索引對查詢優化方案的影響的數據庫系統的制作方法
            技術領域
            :本發明涉及觀察改變數據庫表索引設計的影響。更具體地,本發明涉及在改變數據庫表的索引時使用虛擬表和虛擬索引確定數據庫查詢的優化方案。在多數數據庫中,從外部觀察數據被組織成表。各個表通常包含一系列定義表的列的字段。表的每個行包括一個單獨的記錄。對于表中的每行數據,該數據的具體內容被物理存儲在數據庫中。因而當數據庫用戶從表中請求具體信息時,存儲數據的適當部分被檢索出來并且提供給用戶。一個被稱作″數據庫管理系統″(″DBMS″)的程序為用戶提供一個針對數據庫的接口。DBMS為數據庫提供允許用戶訪問數據庫中存儲的信息對象的結構。DBMS根據用戶的信息請求或″查詢″識別并檢索某些信息對象。具體信息對象的檢索取決于信息對象中存儲的信息與用戶對系統的請求之間的相似程度。通過比較信息對象和信息請求所附的某些屬性的數值來測量相似程度。例如,如果表″Employee″包含字段″Name″,″Dept″,″Age″和″Salary″,并且用戶期望找到在電子部門工作的雇員子集,可以使用下面查詢SELECTName,Salary,AgeFROMEmployeeWHEREDept=″Electronics″為了利于檢索處理,經常對數據庫中的信息對象加″索引″以便通過分配標識對象內容的描述符來概括對象的特征。提取這些信息對象的特征的處理可以引導DBMS根據用戶的具體查詢檢索出數據庫中的具體內容,上述處理被稱作″索引″。為了建立表索引,DBMS通常掃描表,檢索表中各行和各列的數據,并且向索引添加數據,其中索引經常具有B-樹結構。更多有關B-樹結構的信息參見PatrickONeil″數據庫-原理,編程,性能″MorganKaufmannPublishers(1994),這里參考引入了上述著作。DBMS順序讀取表中的每個數據記錄,將各個數據記錄復制到一個臨時空間,在必要時對數據記錄進行排序,并且最終創建一個索引數據結構。然而建立表索引的處理通常消耗大量時間和資源。例如,創建具有數百萬行的表的索引可能需要幾天時間。此外,創建這種表的索引通常需要使用數百兆字節的臨時工作區以便在創建索引之前復制和排序數據。自然地,創建或改變索引的處理會相應占用大量的時間。諸如數據倉庫中使用的數據庫表可以具有數十億甚至數千萬億行數據。用戶可能需要數周甚至數月來創建這種規模的表的索引。其它因素使得涉及創建索引的時間問題更加復雜。具體地,在創建索引之后,數據庫需要時間測試索引并且返回性能統計結果,用戶也需要時間分析結果。對于一個典型的索引數據庫系統,完成一個查詢通常需要兩個步驟。第一個步驟是確定在索引中具有關聯描述符或索引記錄的查詢子句以便檢索那些索引記錄,并且預先限制要考慮的信息對象集合。第二個步驟通常需要從第一步驟得到信息對象集合并且依次檢查各個信息對象以確定是否滿足查詢條件。結構化查詢語言(SQL)已經演變成數據庫查詢或語句的標準語言。SQL接口允許用戶通過批處理文件或嵌入到諸如C,COBOL等等的宿主語言中的方式交互表述數據庫表的關系操作。在SQL中提供允許用戶處理數據的操作符,其中各個操作符操作一或多個表并且產生一個新表作為結果。在調整SQL語句或查詢的處理中,用戶經常希望知道改變索引會怎樣影響查詢的性能。如上所述,索引可以被加到數據庫中以利于提高執行查詢的速度,尤其是在較大的表中,其中索引可以從根本上改進性能。另一方面,由于數據庫中的數據量,增加或改變索引需要大量的時間和資源以供數據庫建立索引。因而用戶經常面臨兩難的選擇,即或者花費建立索引所需的時間和資源,風險是新索引并沒有顯著改進性能,或者是不建立索引,風險是無法確定索引是否能夠改進性能。Oracle數據庫管理系統為用戶提供了觀察SQL語句的″優化方案″的能力。當數據庫分析SQL語句時數據庫自動確定SQL語句的優化方案。優化方案在沒有實際執行SQL語句的情況下顯示數據庫會如何檢索滿足SQL語句需求所需的數據。具體地,優化方案顯示這樣的信息,例如什么表會被首先訪問,中間結果集合會如何被聯接,是否會使用索引,如果是這樣的話會如何解釋索引。因而通過觀察具體SQL語句的優化方案,用戶可以獲得關于SQL語句在數據庫中執行的效率的估測。在較大的數據庫管理系統中,查詢優化對于時間和資源消耗最小化尤其重要。因而,用戶觀察SQL語句的優化方案并且確定索引變化對優化方案的影響的能力變得同等重要。圖1是關于常規方法100的流程圖,其中上述常規方法100觀察數據庫表的索引變化對SQL語句優化方案的影響。在步驟110,針對SQL語句產生一個初始優化方案。在步驟120中,創建,丟棄或修改SQL語句中引用的表的索引。在步驟130,針對SQL語句產生一個新的優化方案。最終在步驟140,用戶比較新優化方案和初始優化方案以確定改變索引會改進性能還是降低性能。然而如上所述,圖1的常規方法100需要過多的時間和資源來創建,放棄或改變索引。此外,數據庫為建立各種優化方案而收集必要的統計數據會需要過多的時間和資源。如果在某個生產環境中不使用數據庫,則可能采用花時間通過常規方法改變索引的手段。然而如果在生產中使用數據庫,則由于在速度,資源和總體性能方面非常消極的影響,花費完成圖1所示的改變所需的時間和精力是非常不可行的。例如,在使用圖1的方法的情況下,如果一個工具或應用程序依賴一個現有索引并且用戶在步驟120改變或放棄上述索引,則數據庫可以停機并且整個系統會死鎖。因而,對于預覽索引改變對優化方案的影響的常規方法,用戶經常被迫盡量避免調整索引的嘗試。于是,當SQL語句在數據庫中執行時這經常導致會費用大量時間和精力的數據庫不能實現最優索引分布或優化方案,尤其是對于較大的數據庫管理系統。因而需要使用一種更快速并且更加有效的方式來改變數據庫表索引設計并且創建這些索引的優化方案。一個方法和裝置為用戶提供了一種框架,這種框架允許用戶在不必花費常規方法所需的時間和資源的情況下試驗表的索引分布并且預覽各種索引分布構造對數據庫查詢優化方案的影響。根據本發明的各個方面,創建一個模擬要測試的數據庫表或數據庫中的″原始表″的結構的虛擬表。通常通過復制原始表來創建虛擬表,其中排除原始表中的任何數據。因而如果數據被存儲在原始表的行中,則數據行不被復制到虛擬表中。然而復制任何與原始表或″原始索引″相關的現有索引以定義一個與虛擬表相關的虛擬索引。通過在復制原始表定義虛擬表時排除數據,可以方便快速地修改相關虛擬索引并且保持原始表的總體結構。可以非常快速地增加新索引和放棄現有索引。并且如果沒有原始索引,則可以方便地創建新虛擬索引。在查詢中,針對原始表的引用被針對虛擬表的引用替換。數據庫管理系統則為查詢確定一個新的優化方案。由于使用虛擬表和虛擬索引確定新優化方案,所以方案的檢索比使用原始表和任何相關原始索引產生的方案更快速。這是由于當復制原始表定義虛擬表時排除了原始表中的實際數據。因而在改變索引設計之后可以快速識別對優化方案的任何改變。在向用戶顯示新優化方案之前,用原始表和原始索引的名稱替換新優化方案中任何對虛擬表和任何虛擬索引的引用。通過這種方式,用戶可以比較新優化方案和初始優化方案并且在不關心或甚至不需要知道虛擬對象在產生新優化方案過程中的使用的情況下分析變化。在圖2中,服務器計算機202與一個數據庫212通信,數據庫212最好是一個Oracle數據庫。本領域的技術人員應當理解,可以使用諸如微軟公司SQL服務器數據庫,SybaseSQL服務器數據庫和IBMDB2數據庫的其它數據庫。本領域的技術人員可以認識到,客戶端計算機200和服務器計算機202可以使用參照圖2描述的上述部件的任何組合或任意數量的不同部件,外設和其它設備。本領域的技術人員還可以認識到,可以在一個單獨計算機而不是多個共同聯網的計算機上實現本發明的示例性實施例。通常使用數據庫管理系統軟件實現本發明的示例性實施例,例如PLATINUMTechnology制作并銷售的SQL-Station軟件,雖然可以通過任意的數據庫管理系統軟件來實現,例如Oracle銷售的Developer/2000開發包或IBM銷售的DB2產品。此外,可以實現本發明示例性實施例的PLATINUMSQL-Station軟件可以和其它軟件結合使用,例如OracleDeveloper/2000軟件和IBM銷售的DB2產品。在圖2中,軟件包含客戶端計算機200執行的SQL-Station客戶端程序204和RelationalExtender客戶端程序206。軟件還包含服務器計算機202執行的Oracle服務器程序208和RelationalExtender程序210。在其相應計算機200或202的操作系統的控制下執行這些程序,上述操作系統包括Windows95,WindowsNT,OS/2,AIX,MVS,Unix等等。本領域的技術人員會認識到,可以使用上述程序的任意組合或任意數量的不同程序來實現本發明的示例性實施例。SQL-Station客戶端程序204和RelationalExtender客戶端程序206針對Oracle服務器程序208和RelationalExtender服務器程序210管理的數據庫212產生執行各種搜尋和檢索函數,即查詢的命令。在最優實施例中,這些查詢符合SQL標準要求,雖然在不偏離本發明范圍的前提下也可以使用其它類型的查詢。查詢調用Oracle服務器程序208和RelationalExtender服務器程序210執行的函數,例如對用戶和系統數據進行定義,訪問控制,解釋,編譯,數據庫檢索和更新的函數。通常情況下,DBMS軟件,SQL查詢和其中導出的指令均可實際包含在諸如一或多個數據存儲設備和/或數據通信設備的計算機可讀介質中,或者可以從中讀取出來。此外,RDBMS軟件,SQL查詢,和其中導出的指令均由在被客戶端計算機200和/或服務器計算機202讀取和執行時導致客戶端計算機200和/或服務器計算機202執行實現和/或使用本發明的實施例所必需的步驟的指令組成。圖3是圖解基于本發明一個示例性實施例的系統的模塊圖,上述系統確定數據庫表的索引變化對數據庫查詢優化方案的影響。圖中顯示兩個用戶或″模式″,即TUTOR302和″PAFO-HR″304,均訪問一個數據庫306,數據庫306最好是一個諸如Oracle8數據庫的Oracle數據庫。在圖3中,各個用戶302,304控制其擁有并且存儲在其帳戶內的表中的對象和信息。例如,用戶PAFO-HR304控制原始表308和一個相關索引310,以及虛擬表312和一個與虛擬表312相關的虛擬索引314。表308,312和對應的相關索引310,314被存儲在數據庫上。各個用戶302,304通常控制該用戶帳戶內存儲的信息以便排斥數據庫306的其它用戶。然而用戶可以被授予各種涉及其它用戶帳戶的特權。通常,只可以從一個用戶向另一個用戶授予涉及一個用戶的帳戶的特權。例如在圖3中,只有PAFO-HR304具有向其它用戶授予涉及PAFO-HR304帳戶的特權的能力。一個這樣的特權是″READ″,即允許訪問另一個用戶的帳戶中的信息。例如在圖3中,用戶PAFO-HR304允許用戶TUTOR302或授予TUTOR302READ特權來訪問PAFO-HR304帳戶內的表中存儲的信息和對象。因而TUTOR302能夠查詢PAFO-HR的帳戶內的表并且訪問PAFO-HR304帳戶中的這種信息。另一方面,一個第三用戶″SCOTT″(未示出)沒有被授予這種涉及PAFO-HR帳戶的READ特權,所以SCOTT不能訪問PAFO-HR304控制的表。圖3的系統中具有的另一個特權是″CREATETABLE″特權或特權集合,上述特權也可以從一個用戶授予另一個用戶。在得到一個用戶的授權的情況下,CREATE-TABLE特權允許其它用戶在某個用戶的帳戶內創建表并且在表中存儲對象。由于為其它用戶提供更強的單方面選擇修改或刪除另一個用戶帳戶內存儲的信息的能力,用戶經常不希望向數據庫系統中其它用戶授予CREATETABLE特權。因而在圖3的數據庫環境中,TUTOR302沒有被授予涉及PAFO-HR帳戶的CREATE-TABLE特權。在圖3中,根據本發明的示例性實施例,在數據庫306上存儲一個名稱為″Oracle方案分析器″(″PAFO″)316的軟件包。這個軟件包可以被數據庫系統的用戶302,304訪問。與TUTOR302不同的是,軟件包PAFO316具有授予PAFO316的PAFO-HR304CREATETABLE特權和數據庫管理員(DBA)授予的若干其它特權。因而一個登錄到TUTOR302帳戶上的用戶可以使用PAFO軟件包316實現訪問和試驗PAFO-HR304帳戶中的表和索引的任務,如果沒有登錄則不具有完成上述任務的特權。在圖3中,TUTOR302調用軟件包PAFO316執行本發明的方法。當調用PAFO316時,PAFO316為PAFO-HR304帳戶創建并動態配置一個過程318。接著在PAFO-HR304帳戶中執行配置的過程318。配置的過程318可以向TUTOR302帳戶的用戶授予訪問PAFO-HR304帳戶的必要特權。配置的過程接著向TUTOR,即用戶的帳戶授予對虛擬表的READ(非寫)特權。通過這種方式,TUTOR可以在沒有CREATETABLE特權的情況下訪問原始表308和虛擬表312。此后參照圖3和4描述配置的過程318的功能。在圖4的步驟402中,過程316識別SQL語句320中引用的原始表308并且復制原始表308以定義虛擬表312。在步驟402中,這個復制包含向新表中復制原始表統計數據,其中包含列統計,柱狀圖和分段存儲。通過這種方式,表面上虛擬表包含的數據行和原始表一樣多。然而最好從定義虛擬表312所復制的信息中排除原始表308中的任何實際數據。因而當數據被存儲在原始表308的行中時,數據行不被復制到虛擬表312中。在步驟402中,通過一個原始表復本進行創建和操作有許多好處。用戶對原始表308的訪問不被中斷并且變化不降低性能。在生產環境中,執行的應用不受影響。當使用Oracle數據庫時,不需要針對原始表308修改Oracle目錄中的內容。此外由于虛擬表不包含任何數據行,因而索引建立非常快速。在步驟402中,如果在PAFO-HR304帳戶中有其它原始表,則也可以復制這些表以便定義對應的虛擬表。并且由于如下所述的原因,最好維護一個列表(未示出),在該列表中虛擬表的名稱與其建立所依據的原始表相關。在步驟404中定義與虛擬表312相關的虛擬索引314。在這個步驟中,如果存在任何與原始表308相關的原始索引310,則過程316復制原始索引310以定義虛擬索引314。例如如果針對圖3的原始表308中示出的兩個列定義了原始索引,則通過復制原始索引針對虛擬表312中示出的兩個列創建對應的虛擬索引。與原始索引310相關的統計數據也被復制到虛擬索引314中,并且可以根據用戶的指示來設置。通過這種方式,虛擬索引具有與原始索引相同的數據結構,其中包含相同的約束和定義。因而對于所涉及的任何優化方案,虛擬索引的結構均與原始索引相同。在步驟404中,如果沒有與原始表308相關的原始索引310,則用戶可以通過過程316創建和定義虛擬索引314。并且在一個用戶希望進行沒有索引的試驗的情況下,用戶可以使用配置的過程316通過刪除原始索引310中出現的任何索引來進行簡單選擇以定義虛擬索引314。這里,在PAFO-HR304上創建過程318并且執行過程318以便向TUTOR302授予READ特權。在步驟406,當定義虛擬索引314之后,PAFO316用一個針對虛擬表312的引用替換SQL語句320中任何針對原始表308的引用。另外,用虛擬索引314的名稱替換SQL語句320中任何針對原始索引310的引用。被替換名稱修改的SQL語句322接著被發送到數據庫服務器。帳戶TUTOR302的用戶會相信其正在訪問原始表308,但實際上正在訪問虛擬表314。此外,通過創建原始表的一個復本并且簡單改變SQL語句中引用的對象的名稱,不必進行在原始表上費時又費資源的創建新索引的操作。由于PAFO程序316已經改變SQL語句320并且定義了經過修改的SQL語句322,數據庫在步驟408中解釋經過修改的SQL語句322以確定虛擬表的新優化方案324。在步驟410中,PAFO過程316接著修改數據庫服務器返回的新優化方案324中的信息以便定義一個經過修改的優化方案326。具體地,分別參照原始索引310和原始表308替換新優化方案324中針對虛擬索引314和虛擬表312的任何引用。接著在步驟412中向用戶顯示用替換名稱修改的優化方案326。因而用戶的感覺是僅僅在操作初始對象308和310。通過使用上述方法,改變索引和檢索新優化方案所需的時間經常從若干小時減少到若干秒。因而用戶在不需要關心或察覺虛擬表和虛擬索引的使用的情況下就能夠得到改進新優化方案檢索的速度與系統性能的好處。用戶可以將經過修改的優化方案326與任何針對原始表308和原始索引310創建的初始優化方案相互比較。如果新優化方案更好,例如似乎會改進數據庫中執行SQL語句320的速度和效率,則用戶可以選擇在原始表308上實際建立虛擬索引314。反之,如果不會改進性能,則用戶可以試驗不同的虛擬索引314或在不浪費時間和資源的情況下繼續使用原始索引310,其中如果不繼續使用原始索引310則需要構造虛擬索引314。可以由多個用戶在相同對象上同時執行如圖3和4所述的各個功能。這些功能不干擾對象的其它用戶,也不對性能產生顯著的影響,這允許在一個生產系統中執行這些功能。例子在一個例子中,一個用戶登錄到圖3的TUTOR302帳戶上。在這個例子中,帳戶PAFO-HR304中的原始表308是一個存儲某公司或企業的雇員名稱的表,此后被稱作″EMPLOYEES″表。TUTOR302被授予涉及PAFO-HR帳戶的READ特權,所以TUTOR302能夠向EMPLOYEES表發送查詢。已經針對EMPLOYEES表創建了虛擬表312,其中虛擬表名稱是″T_########1″,初始SQL語句320如下所示SELECT*FROMhr.employeeseWHEREhiredate>H_Date下面的SQL語句作為修改后的SQL語句322被發送到服務器,其中原始表名稱″EMPLOYEES″被虛擬表名稱″T_########1″替換SELECT*FROMhr.″T_########1″eWHEREhiredate>H_Date如果SQL語句320包含優化線索,則PAFO316檢查包含原始表名稱″EMPLOYEES″的線索或一個與其相關的、作為線索的參數的索引。例如,假定用戶正在操作下面SQL語句320SELECT/*+INDEX(e,I_EMP_HIREDATE)*/*FROMEMPLOYEESeWHEREhiredate>H_Date當用戶請求觀察SQL語句320的優化方案時,下面消息被發送到數據庫服務器以作為修改的SQL語句322SELECT/*+INDEX(e,I_########5)*/*FROMhr.T_########1eWHEREhiredate>H_Date為了避免系統中的性能下降,各個用戶最好只被允許創建EMPLOYEES的一個單獨復本以定義″T_########1″虛擬表。在已經為該用戶創建一個復本的情況下最好限制用戶創建新的復本。對于下述過程,最好指定原始表的名稱而不是虛擬表名稱。所以如果用戶在EMPLOYEES表上創建一個第一虛擬索引,用戶可以在EMPLOYEES表的虛擬復本上創建一個第二虛擬索引或放棄一個索引,但是表名稱參數應當是原始表的名稱。在后一種情況下,即用戶重新使用之前創建的一個虛擬表的情況下,PAFO軟件包保證原始表中仍然存在檢索的索引名稱。例如,可以使用下面的SQL查詢SELECTindex_nameFROMexpl_indexesWHEREowner=Index_OwnerANDindex_name=Index_NameANDtable_name=Table_Name最終,由于通常只返回原始表上存在的索引的名稱,應當通過如下所述的語句查詢虛擬索引SELECTowner,index_nameFROMexpl_indexesWHEREtable_owner=Virtual_table_OwnerANDtable_name=Virtual_Table_NameAND(owner,index_name)NOTIN((′owner1′,′index1′),(′owner2′,′index2′),...),其中(′owner1′,′index1′)對是返回索引的擁有者和名稱。在這個例子中,下面步驟被用于觀察數據庫表的索引變化對數據庫查詢優化方案的影響。步驟1創建虛擬表可以執行下面過程以創建虛擬表,假定一個虛擬表尚未創建beginpafo.explain_virtual.create_virtual_table(table_owner,table_name);end;如果虛擬表已經存在,則返回一個差錯報告。參數的定義如下所述表1在表1中,VARCHAR2(30)表示一個多達30個字符的字符串。并且,模式=INPUT指示數據被輸入到過程中。反之,如以下表中所使用的,模式=OUTPUT表示從過程中檢索出的數據。步驟2定義虛擬表和索引名稱在創建虛擬表之后,可以執行下面過程返回定義虛擬索引所復制的虛擬表名稱和索引名稱。beginpafo.explain_virtual.get_virtual_table_aliases(table_owner,table_name,virtual_table_name,virtual_index_count,original_index_owners,original_index_names,virtual_index_names);end表2步驟2的調用通常假定使用CREATE_VIRTUAL_TABLE過程創建虛擬表。這意味著如果虛擬表存在于一個集簇中,則該集簇與原始表所存在的集簇相同。即虛擬表不是將一個非集簇表變成集簇表的請求的產物。否則返回一個差錯報告。步驟3缺省統計數據新虛擬索引最好具有現實統計數據以便保證創建一個相當于具有在原始表上創建的索引的優化方案。EXPLAIN_VIRTUAL提供過程DEFAULT_NEW_INDEX_STATS協助用戶設置適當的統計數據。如果原始表具有已存在的索引,則那些索引的存儲信息和統計數據會被用來產生虛擬索引的缺省存儲信息和統計數據。如果沒有分析出已存在的索引,則會使用有限制的缺省值。在執行DEFAULT_NEW_INDEX_STATS之后,向PAFO返回缺省存儲信息和統計數據以便顯示和修改。允許用戶改變這些統計數據以便較好地標識索引性質。為了幫助用戶判定如何改變統計數據,PAFO允許用戶顯示關于當前在表上創建的其它索引的統計數據。可以執行下面過程以獲得缺省統計數據beginpafo.explain_virtual.default_new_index_stats(table_owner,table_name,ind_name,ind_col_names,num_ind_columns,default_tablespace,init_trans,max_trans,pct_free,btree_levels,leaf_bloeks,avg_leaf_blocks,avg_data_blocks,cluster_factor,blocks_allocated,extents_allocated,distinct_values);end;參數定義如下所述表3*1-保證各個數組元素的數值為null結束并且在適當的OCI約束參數中指定數組的各個元素的實際長度。當執行過程DEFAULT_NEW_INDEX_STATS時可以產生下面的差錯代碼。第二列包含有關差錯的描述,并且在括號中包含有關用戶如何能夠排除差錯的建議。表4輸出參數會被輸入到下一個要執行的過程EXPLAIN_VIRTUAL.CREATE_VIRTUAL_INDEX。并且注意,用戶可能會試圖在用戶沒有訪問的表空間上創建索引。步驟4創建虛擬索引最好復制原始表的任何現有索引以定義虛擬索引。還復制索引統計數據和存儲信息。因此可以執行下面過程beginpafo.explain_virtual.create_virtual_index(table_owner,table_name,ind_name,ind_col_names,num_ind_columns,default_tablespace,init_trans,max_trans,pct_free,btree_levels,leaf_blocks,avg_leaf_blocks,avg_data_blocks,cluster_factor,blocks_allocated,extents_allocated,distinct_values);end;前面在步驟3中定義了這些參數。步驟5最終步驟這里,PAFO如上所述創建一個顯示初始SQL文本的新WHATIF框架(frame)。允許用戶修改文本和增加線索。復制SQL框架的″標簽″并且使用相同的序號。例如,如果SQL框架標記是SQLHISTORY;1,則WHATIF框架應當被標記成WHATIFHISTORY;1。當用戶請求一個優化方案時,PAFO應當改變所解釋的SQL文本,但不是在SQL框架上。但是SQL應當看上去類似初始SQL語句。因而過程期望得到SQL文本的一個復本并且用表復本的名稱(temp_table_name)替換原始表名稱(table_name)的所有出現。如果SQL語句使用一個同義詞(局部或公共)指向原始表,則修改的SQL文本應當包含虛擬表擁有者和虛擬表名稱。在線索引用表或表上一個索引的情況下也可能需要改變線索參數。接著創建方案并且將方案檢索到存儲器中。對于OPERATION列從′TABLE′開始的各個OBJECT_OWNER和OBJECT_NAME組合,應當將臨時表名稱改變成初始名稱(table_name)。對于前面步驟2中返回的各個虛擬索引,應當在優化方案中搜尋這些虛擬索引名稱并且用原始索引名稱替換。在數組(original_index_owners,original_index_names)中標識虛擬索引。在數組(virtual_index_names)中存儲相關的替換索引名稱。所以每當OPERATION列以文本″INDEX″為開始時PAFO便進行搜尋。如果OBJECT_OWNER和OBJECT_NAME匹配ORIGINAL_INDEX_OWNER(0)和VIRTUAL_INDEX_NAME(0)數值,則索引名稱應當被改變成ORIGINAL_INDEX_NAME(0)。最好針對各個數組元素重復這個處理。接著顯示修改的方案并且在創建的虛擬索引對性能有影響時通知用戶。當顯示″OBJECT″標簽中的信息時,PAFO最好如步驟4&5中所述進行相同的改變;即PAFO顯示T_########1而不是EMPLOYEES的索引。但在向用戶顯示信息時PAFO應當使用名稱EMPLOYEES代替T_########1。并且當顯示索引時,應當顯示相關的ORIGINAL_INDEX_NAME數值。當用戶點擊一個包含虛擬表名稱或其某個索引的方案步驟時,應當顯示相關虛擬索引的統計數據。因而,用戶點擊EMPLOYEES,用戶看見名稱EMPLOYEES,但PAFO列出T_########1的統計數據。對于EMPLOYEES的索引也是如此。放棄一個虛擬索引這個過程最好只能放棄那些屬于一個虛擬表的索引。所以如果一個虛擬表不存在,則應當創建這個虛擬表。通過過程CREATE_VIRTUAL_TABLE創建虛擬表。接著用戶可以指示其希望放棄一個索引的表。接著可以使用下面的步驟步驟1.列出所有用戶要訪問的表SELECTowner,table_nameFROMexp1_tables步驟2.確定選擇的表是否虛擬表SELECTtable_id,new_table_nameFROMmy_explain_virtual_tablesWHEREorig_table_name=Table_name如果查詢返回一個結果行,則虛擬復本存在。否則創建虛擬表(參見上面創建虛擬索引中的步驟1)。步驟3.列出虛擬表上的虛擬索引列出虛擬表上的虛擬索引(參見上面創建虛擬索引中的步驟2)。步驟4.放棄虛擬索引為了放棄一個虛擬索引,執行下面的過程beginpafo.explain_virtual.drop_virtual_index(table_owner,table_name,virtual_index_name)end;表5清除為了放棄一個具體虛擬表并且在PAFO注冊表中清除相關信息,可以執行下面的過程beginpafo.explain_virtual.clean_up_table(virtual_table_creator,original_table_owner,original_table_name);end;表6為了放棄所有虛擬表,執行下面過程beginpafo.explain_virtual.clean_up_all;end;應當理解,上述具體實施例只是為了圖解本發明的原理,本領域的技術人員在不偏離本發明的范圍和宗旨的前提下可以進行各種修改。因而本發明的范圍僅受后面的權利要求書的范圍的限制。權利要求1.在數據庫管理系統中觀察一個查詢的初始優化方案的變化的方法,上述查詢具有一個針對某個原始表的引用,上述原始表具有在一個數據庫中存儲的數據,上述方法包括復制排除了數據的原始表以定義一個虛擬表;提供一個與虛擬表相關的虛擬索引;在查詢中用針對虛擬表的引用替換針對原始表的引用;向查詢增加針對虛擬索引的引用;確定查詢的一個新優化方案;和2.如權利要求1所述的方法,其中還包括比較新優化方案和初始優化方案的步驟。3.如權利要求2所述的方法,其中在比較新優化方案和初始優化方案之前還包括在新優化方案中用針對原始表的引用替換針對虛擬表的引用;和向用戶顯示具有針對原始表的引用的新優化方案。4.在數據庫管理系統觀察查詢的初始優化方案的變化的方法,上述查詢具有(i)針對原始表的引用,上述原始表具有在一個數據庫中存儲的數據;和(ii)針對與原始表相關的原始索引的引用,上述方法包括復制排除了數據的原始表以定義一個虛擬表;改變原始索引以定義一個與虛擬表相關的虛擬索引;確定查詢的一個新優化方案;和5.如權利要求4所述的方法,其中還包括比較新優化方案和初始優化方案的步驟。6.如權利要求5所述的方法,其中在比較新優化方案和初始優化方案之前還包括在新優化方案中分別用針對原始表和原始索引的引用替換針對虛擬表和虛擬索引的引用;和向用戶顯示具有針對原始表和原始索引的引用的新優化方案。7.在數據庫管理系統觀察查詢的初始優化方案的變化的方法,上述查詢具有(i)針對原始表的引用,上述原始表具有在一個數據庫中存儲的數據;和(ii)針對與原始表相關的原始索引的引用,上述方法包括復制排除了數據的原始表以定義一個虛擬表;在查詢中用針對虛擬表的引用替換針對原始表的引用;從查詢中刪除針對虛擬表的引用;確定查詢的一個新優化方案;和8.如權利要求7所述的方法,其中還包括比較新優化方案和初始優化方案的步驟。9.如權利要求8所述的方法,其中在比較新優化方案和初始優化方案之前還包括在新優化方案中用針對原始表的引用替換針對虛擬表的引用;和向用戶顯示具有針對原始表的引用的新優化方案。全文摘要觀察改變數據庫表索引對諸如SQL語句的數據庫查詢的優化方案的影響的方法和裝置創建模擬數據庫中原始表(308)的結構的虛擬表(312)。通過復制原始表(308)來創建虛擬表(312),其中排除原始表中的任何數據。復制任何與原始表(308)相關的現有原始索引(310)以便定義與虛擬表(312)相關的虛擬索引(314)。查詢中針對原始表的引用被針對虛擬表(408)的引用替換。數據庫管理系統則為查詢確定一個新的優化方案(324)。文檔編號G06F17/30GK1361890SQ00810565公開日2002年7月31日申請日期2000年7月19日優先權日1999年7月20日發明者愛德華·科斯克尤科,斯利庫瑪·曼諾,黃-文·沃申請人:計算機聯合思想公司
            網友詢問留言 已有0條留言
            • 還沒有人留言評論。精彩留言會獲得點贊!
            1
            婷婷六月激情在线综合激情,亚洲国产大片,久久中文字幕综合婷婷,精品久久久久久中文字幕,亚洲一区二区三区高清不卡,99国产精品热久久久久久夜夜嗨 ,欧美日韩亚洲综合在线一区二区,99国产精品电影,伊人精品线视天天综合,精品伊人久久久大香线蕉欧美
            亚洲精品1区 国产成人一级 91精品国产欧美一区二区 亚洲精品乱码久久久久久下载 国产精品久久久久久久伊一 九色国产 国产精品九九视频 伊人久久成人爱综合网 欧美日韩亚洲区久久综合 欧美日本一道免费一区三区 夜夜爽一区二区三区精品 欧美日韩高清一区二区三区 国产成人av在线 国产精品对白交换绿帽视频 国产视频亚洲 国产在线欧美精品 国产精品综合网 国产日韩精品欧美一区色 国产日韩精品欧美一区喷 欧美日韩在线观看区一二 国产区精品 欧美视频日韩视频 中文字幕天天躁日日躁狠狠躁97 视频一二三区 欧美高清在线精品一区二区不卡 国产精品揄拍一区二区久久 99久久综合狠狠综合久久aⅴ 亚洲乱码视频在线观看 日韩在线第二页 亚洲精品无码专区在线播放 成人亚洲网站www在线观看 欧美三级一区二区 99久久精品免费看国产高清 91麻豆国产在线观看 最新日韩欧美不卡一二三区 成人在线观看不卡 日韩国产在线 在线亚洲精品 亚洲午夜久久久久中文字幕 国产精品成人久久久久久久 精品国产一区二区在线观看 欧美精品国产一区二区三区 中文在线播放 亚洲第一页在线视频 国产午夜精品福利久久 九色国产 精品国产九九 国产永久视频 久久精品人人做人人综合试看 国产一区二区三区免费观看 亚洲精品国产电影 9999热视频 国产精品资源在线 麻豆久久婷婷国产综合五月 国产精品免费一级在线观看 亚洲国产一区二区三区青草影视 中文在线播放 国产成人综合在线 国产在线观看色 国产亚洲三级 国产片一区二区三区 久久99精品久久久久久牛牛影视 亚洲欧美日韩国产 四虎永久免费网站 国产一毛片 国产精品视频在 九九热在线精品 99精品福利视频 色婷婷色99国产综合精品 97成人精品视频在线播放 精品久久久久久中文字幕 亚洲欧美一区二区三区孕妇 亚洲欧美成人网 日韩高清在线二区 国产尤物在线观看 在线不卡一区二区 91网站在线看 韩国精品福利一区二区 欧美日韩国产成人精品 99热精品久久 国产精品免费视频一区 高清视频一区 精品九九久久 欧美日韩在线观看免费 91欧美激情一区二区三区成人 99福利视频 亚洲国产精品91 久热国产在线 精品久久久久久中文字幕女 国产精品久久久久久久久99热 成人自拍视频网 国产精品视频久久久久久 久久影院国产 国产玖玖在线观看 99精品在线免费 亚洲欧美一区二区三区导航 久久久久久久综合 国产欧美日韩精品高清二区综合区 国产精品视频自拍 亚洲一级片免费 久久久久久九九 国产欧美自拍视频 视频一区二区在线观看 欧美日韩一区二区三区久久 中文在线亚洲 伊人热人久久中文字幕 日韩欧美亚洲国产一区二区三区 欧美亚洲国产成人高清在线 欧美日韩国产码高清综合人成 国产性大片免费播放网站 亚洲午夜综合网 91精品久久一区二区三区 国产无套在线播放 国产精品视频网站 国产成人亚洲精品老王 91在线网站 国产视频97 欧美黑人欧美精品刺激 国产一区二区三区免费在线视频 久久久国产精品免费看 99re6久精品国产首页 久久精品91 国产成人一级 国产成人精品曰本亚洲 日本福利在线观看 伊人成综合网 久久综合一本 国产综合久久久久久 久久精品成人免费看 久久福利 91精品国产91久久久久久麻豆 亚洲精品成人在线 亚洲伊人久久精品 欧美日本二区 国产永久视频 国产一区二 一区二区福利 国产一毛片 亚洲精品1区 毛片一区二区三区 伊人久久大香线蕉综合影 国产欧美在线观看一区 亚洲国产欧洲综合997久久 国产一区二区免费视频 国产91精品对白露脸全集观看 久久亚洲国产伦理 欧美成人伊人久久综合网 亚洲性久久久影院 久久99国产精一区二区三区! 91精品国产欧美一区二区 欧美日韩亚洲区久久综合 日韩精品一二三区 久久久夜色精品国产噜噜 国产在线精品福利91香蕉 久久久久久久亚洲精品 97se色综合一区二区二区 91国语精品自产拍在线观看性色 91久久国产综合精品女同我 日韩中文字幕a 国产成人亚洲日本精品 久久国产精品-国产精品 久久国产经典视频 久久国产精品伦理 亚洲第一页在线视频 国产精品久久久久三级 日韩毛片网 久久免费高清视频 麻豆国产在线观看一区二区 91麻豆国产福利在线观看 国产成人精品男人的天堂538 一区二区三区中文字幕 免费在线视频一区 欧美日韩国产成人精品 国产综合网站 国产资源免费观看 亚洲精品亚洲人成在线播放 精品久久久久久中文字幕专区 亚洲人成人毛片无遮挡 国产一起色一起爱 国产香蕉精品视频在 九九热免费观看 日韩亚洲欧美一区 九九热精品在线观看 精品久久久久久中文字幕专区 亚洲欧美自拍偷拍 国产精品每日更新 久久久久国产一级毛片高清板 久久天天躁狠狠躁夜夜中文字幕 久久精品片 日韩在线毛片 国产成人精品本亚洲 国产成人精品一区二区三区 九九热在线观看 国产r级在线观看 国产欧美日韩精品高清二区综合区 韩国电影一区二区 国产精品毛片va一区二区三区 五月婷婷伊人网 久久一区二区三区免费 一本色道久久综合狠狠躁篇 亚洲综合色站 国产尤物在线观看 亚洲一区亚洲二区 免费在线视频一区 欧洲精品视频在线观看 日韩中文字幕a 中文字幕日本在线mv视频精品 91精品在线免费视频 精品国产免费人成在线观看 精品a级片 中文字幕日本在线mv视频精品 日韩在线精品视频 婷婷丁香色 91精品国产高清久久久久 国产成人精品日本亚洲直接 五月综合视频 欧美日韩在线亚洲国产人 精液呈暗黄色 亚洲乱码一区 久久精品中文字幕不卡一二区 亚洲天堂精品在线 激情婷婷综合 国产免费久久精品久久久 国产精品亚洲二区在线 久久免费播放视频 五月婷婷丁香综合 在线亚洲欧美日韩 久久免费精品高清麻豆 精品久久久久久中文字幕 亚洲一区网站 国产精品福利社 日韩中文字幕免费 亚洲综合丝袜 91精品在线播放 国产精品18 亚洲日日夜夜 伊人久久大香线蕉综合影 亚洲精品中文字幕乱码影院 亚洲一区二区黄色 亚洲第一页在线视频 一区二区在线观看视频 国产成人福利精品视频 亚洲高清二区 国内成人免费视频 精品亚洲性xxx久久久 国产精品合集一区二区三区 97av免费视频 国产一起色一起爱 国产区久久 国产资源免费观看 99精品视频免费 国产成人一级 国产精品九九免费视频 欧美91精品久久久久网免费 99热国产免费 久久精品色 98精品国产综合久久 久久精品播放 中文字幕视频免费 国产欧美日韩一区二区三区在线 精品久久蜜桃 国产小视频精品 一本色道久久综合狠狠躁篇 91在线免费观看 亚洲精品区 伊人成综合网 伊人热人久久中文字幕 伊人黄色片 99国产精品热久久久久久夜夜嗨 久久免费精品视频 亚洲一区二区三区高清不卡 久久久久国产一级毛片高清板 国产片一区二区三区 久久狠狠干 99久久婷婷国产综合精品电影 国产99区 国产精品成人久久久久 久久狠狠干 青青国产在线观看 亚洲高清国产拍精品影院 国产精品一区二区av 九九热在线免费视频 伊人久久国产 国产精品久久久久久久久久一区 在线观看免费视频一区 国产精品自在在线午夜区app 国产精品综合色区在线观看 国产毛片久久久久久国产毛片 97国产免费全部免费观看 国产精品每日更新 国产尤物视频在线 九九视频这里只有精品99 一本一道久久a久久精品综合 久久综合给会久久狠狠狠 国产成人精品男人的天堂538 欧美一区二区高清 毛片一区二区三区 国产欧美日韩在线观看一区二区三区 在线国产二区 欧美不卡网 91在线精品中文字幕 在线国产福利 国内精品91久久久久 91亚洲福利 日韩欧美国产中文字幕 91久久精品国产性色也91久久 亚洲性久久久影院 欧美精品1区 国产热re99久久6国产精品 九九热免费观看 国产精品欧美日韩 久久久久国产一级毛片高清板 久久国产经典视频 日韩欧美亚洲国产一区二区三区 欧美亚洲综合另类在线观看 国产精品自在在线午夜区app 97中文字幕在线观看 视频一二三区 精品国产一区在线观看 国产欧美日韩在线一区二区不卡 欧美一区二三区 伊人成人在线观看 国内精品91久久久久 97在线亚洲 国产在线不卡一区 久久久全免费全集一级全黄片 国产精品v欧美精品∨日韩 亚洲毛片网站 在线不卡一区二区 99re热在线视频 久久激情网 国产毛片一区二区三区精品 久久亚洲综合色 中文字幕视频免费 国产视频亚洲 婷婷伊人久久 国产一区二区免费播放 久久99国产精品成人欧美 99国产在线视频 国产成人免费视频精品一区二区 国产不卡一区二区三区免费视 国产码欧美日韩高清综合一区 久久精品国产主播一区二区 国产一区电影 久久精品国产夜色 国产精品国产三级国产 日韩一区二区三区在线 久久97久久97精品免视看 久久国产免费一区二区三区 伊人久久大香线蕉综合电影网 99re6久精品国产首页 久久激情网 亚洲成人高清在线 国产精品网址 国产成人精品男人的天堂538 香蕉国产综合久久猫咪 国产专区中文字幕 91麻豆精品国产高清在线 久久国产经典视频 国产精品成人va在线观看 国产精品爱啪在线线免费观看 日本精品久久久久久久久免费 亚洲综合一区二区三区 久久五月网 精品国产网红福利在线观看 久久综合亚洲伊人色 亚洲国产精品久久久久久网站 在线日韩国产 99国产精品热久久久久久夜夜嗨 国产综合精品在线 国产区福利 精品亚洲综合久久中文字幕 国产制服丝袜在线 毛片在线播放网站 在线观看免费视频一区 国产精品久久久精品三级 亚洲国产电影在线观看 最新日韩欧美不卡一二三区 狠狠综合久久综合鬼色 日本精品1在线区 国产日韩一区二区三区在线播放 欧美日韩精品在线播放 亚洲欧美日韩国产一区二区三区精品 久久综合久久网 婷婷六月激情在线综合激情 亚洲乱码一区 国产专区91 97av视频在线观看 精品久久久久久中文字幕 久久五月视频 国产成人福利精品视频 国产精品网址 中文字幕视频在线 精品一区二区三区免费视频 伊人手机在线视频 亚洲精品中文字幕乱码 国产在线视频www色 色噜噜国产精品视频一区二区 精品亚洲成a人在线观看 国产香蕉尹人综合在线 成人免费一区二区三区在线观看 国产不卡一区二区三区免费视 欧美精品久久天天躁 国产专区中文字幕 久久精品国产免费中文 久久精品国产免费一区 久久无码精品一区二区三区 国产欧美另类久久久精品免费 欧美精品久久天天躁 亚洲精品在线视频 国产视频91在线 91精品福利一区二区三区野战 日韩中文字幕免费 国产精品99一区二区三区 欧美成人高清性色生活 国产精品系列在线观看 亚洲国产福利精品一区二区 国产成人在线小视频 国产精品久久久久免费 99re热在线视频 久久久久久久综合 一区二区国产在线播放 成人国产在线视频 亚洲精品乱码久久久久 欧美日韩一区二区综合 精品久久久久免费极品大片 中文字幕视频二区 激情粉嫩精品国产尤物 国产成人精品一区二区视频 久久精品中文字幕首页 亚洲高清在线 国产精品亚洲一区二区三区 伊人久久艹 中文在线亚洲 国产精品一区二区在线播放 国产精品九九免费视频 亚洲二区在线播放 亚洲狠狠婷婷综合久久久久网站 亚洲欧美日韩网站 日韩成人精品 亚洲国产一区二区三区青草影视 91精品国产福利在线观看 国产精品久久久久久久久99热 国产一区二区精品尤物 久碰香蕉精品视频在线观看 亚洲日日夜夜 在线不卡一区二区 国产午夜亚洲精品 九九热在线视频观看这里只有精品 伊人手机在线视频 91免费国产精品 日韩欧美中字 91精品国产91久久久久 国产全黄三级播放 视频一区二区三区免费观看 国产开裆丝袜高跟在线观看 国产成人欧美 激情综合丝袜美女一区二区 国产成人亚洲综合无 欧美精品一区二区三区免费观看 欧美亚洲国产日韩 日韩亚州 国产欧美日韩精品高清二区综合区 亚洲午夜国产片在线观看 精品久久久久久中文字幕 欧美精品1区 久久伊人久久亚洲综合 亚洲欧美日韩精品 国产成人精品久久亚洲高清不卡 久久福利影视 国产精品99精品久久免费 久久久久免费精品视频 国产日产亚洲精品 亚洲国产午夜电影在线入口 精品无码一区在线观看 午夜国产精品视频 亚洲一级片免费 伊人久久大香线蕉综合影 国产精品久久影院 久碰香蕉精品视频在线观看 www.欧美精品 在线小视频国产 亚洲国产天堂久久综合图区 欧美一区二区三区不卡 日韩美女福利视频 九九精品免视频国产成人 不卡国产00高中生在线视频 亚洲第一页在线视频 欧美日韩在线播放成人 99re视频这里只有精品 国产精品91在线 精品乱码一区二区三区在线 国产区久久 91麻豆精品国产自产在线观看一区 日韩精品成人在线 九九热在线观看 国产精品久久不卡日韩美女 欧美一区二区三区综合色视频 欧美精品免费一区欧美久久优播 国产精品网址 国产专区中文字幕 国产精品欧美亚洲韩国日本久久 日韩美香港a一级毛片 久久精品123 欧美一区二区三区免费看 99r在线视频 亚洲精品国产字幕久久vr 国产综合激情在线亚洲第一页 91免费国产精品 日韩免费小视频 亚洲国产精品综合一区在线 国产亚洲第一伦理第一区 在线亚洲精品 国产精品一区二区制服丝袜 国产在线成人精品 九九精品免视频国产成人 亚洲国产网 欧美日韩亚洲一区二区三区在线观看 在线亚洲精品 欧美一区二区三区高清视频 国产成人精品男人的天堂538 欧美日韩在线观看区一二 亚洲欧美一区二区久久 久久精品中文字幕首页 日本高清www午夜视频 久久精品国产免费 久久999精品 亚洲国产精品欧美综合 88国产精品视频一区二区三区 91久久偷偷做嫩草影院免费看 国产精品夜色视频一区二区 欧美日韩导航 国产成人啪精品午夜在线播放 一区二区视频在线免费观看 99久久精品国产自免费 精液呈暗黄色 久久99国产精品 日本精品久久久久久久久免费 精品国产97在线观看 99re视频这里只有精品 国产视频91在线 999av视频 亚洲美女视频一区二区三区 久久97久久97精品免视看 亚洲国产成人久久三区 99久久亚洲国产高清观看 日韩毛片在线视频 综合激情在线 91福利一区二区在线观看 一区二区视频在线免费观看 激情粉嫩精品国产尤物 国产成人精品曰本亚洲78 国产成人精品本亚洲 国产精品成人免费视频 国产成人啪精品视频免费软件 久久精品国产亚洲妲己影院 国产精品成人久久久久久久 久久大香线蕉综合爱 欧美一区二区三区高清视频 99热国产免费 在线观看欧美国产 91精品视频在线播放 国产精品福利社 欧美精品一区二区三区免费观看 国产一区二区免费视频 国产午夜精品一区二区 精品视频在线观看97 91精品福利久久久 国产一区福利 国产综合激情在线亚洲第一页 国产精品久久久久久久久久久不卡 九色国产 在线日韩国产 黄网在线观看 亚洲一区小说区中文字幕 中文字幕丝袜 日本二区在线观看 日本国产一区在线观看 欧美日韩一区二区三区久久 欧美精品亚洲精品日韩专 国产日产亚洲精品 久久综合九色综合欧美播 亚洲国产欧美无圣光一区 欧美视频区 亚洲乱码视频在线观看 久久无码精品一区二区三区 九九热精品免费视频 久久99精品久久久久久牛牛影视 国产精品成久久久久三级 国产一区福利 午夜国产精品视频 日本二区在线观看 99久久网站 国产亚洲天堂 精品国产一区二区三区不卡 亚洲国产日韩在线一区 国产成人综合在线观看网站 久久免费高清视频 欧美在线导航 午夜精品久久久久久99热7777 欧美久久综合网 国产小视频精品 国产尤物在线观看 亚洲国产精品综合一区在线 欧美一区二区三区不卡视频 欧美黑人欧美精品刺激 日本福利在线观看 久久国产偷 国产手机精品一区二区 国产热re99久久6国产精品 国产高清啪啪 欧美亚洲国产成人高清在线 国产在线第三页 亚洲综合一区二区三区 99r在线视频 99精品久久久久久久婷婷 国产精品乱码免费一区二区 国产在线精品福利91香蕉 国产尤物视频在线 五月婷婷亚洲 中文字幕久久综合伊人 亚洲精品一级毛片 99国产精品电影 在线视频第一页 久久99国产精品成人欧美 国产白白视频在线观看2 成人精品一区二区www 亚洲成人网在线观看 麻豆91在线视频 色综合合久久天天综合绕视看 久久精品国产免费高清 国产不卡一区二区三区免费视 欧美国产中文 99精品欧美 九九在线精品 国产中文字幕在线免费观看 国产一区中文字幕在线观看 国产成人一级 国产精品一区二区制服丝袜 国产一起色一起爱 亚洲精品成人在线 亚洲欧美精品在线 国产欧美自拍视频 99精品久久久久久久婷婷 久99视频 国产热re99久久6国产精品 视频一区亚洲 国产精品视频分类 国产精品成在线观看 99re6久精品国产首页 亚洲在成人网在线看 亚洲国产日韩在线一区 久久国产三级 日韩国产欧美 欧美在线一区二区三区 国产精品美女一级在线观看 成人午夜免费福利视频 亚洲天堂精品在线 91精品国产手机 欧美日韩视频在线播放 狠狠综合久久综合鬼色 九一色视频 青青视频国产 亚洲欧美自拍一区 中文字幕天天躁日日躁狠狠躁97 日韩免费大片 996热视频 伊人成综合网 亚洲天堂欧美 日韩精品亚洲人成在线观看 久久综合给会久久狠狠狠 日韩精品亚洲人成在线观看 日韩国产欧美 亚洲成aⅴ人片在线影院八 亚洲精品1区 99久久精品免费 国产精品高清在线观看 国产精品久久久免费视频 在线亚洲欧美日韩 91在线看视频 国产精品96久久久久久久 欧美日韩国产成人精品 91在线亚洲 热久久亚洲 国产精品美女免费视频观看 日韩在线毛片 亚洲永久免费视频 九九免费在线视频 亚洲一区网站 日本高清二区视频久二区 精品国产美女福利在线 伊人久久艹 国产精品久久久久三级 欧美成人精品第一区二区三区 99久久精品国产自免费 在线观看日韩一区 国产中文字幕一区 成人免费午夜视频 欧美日韩另类在线 久久99国产精品成人欧美 色婷婷中文网 久久天天躁夜夜躁狠狠躁2020 欧美成人伊人久久综合网 国产精品福利资源在线 国产伦精品一区二区三区高清 国产精品亚洲综合色区韩国 亚洲一区欧美日韩 色综合视频 国语自产精品视频在线区 国产高清a 成人国内精品久久久久影 国产在线精品香蕉综合网一区 国产不卡在线看 国产成人精品精品欧美 国产欧美日韩综合精品一区二区三区 韩国电影一区二区 国产在线视频www色 91中文字幕在线一区 国产人成午夜免视频网站 亚洲综合一区二区三区 色综合视频一区二区观看 久久五月网 九九热精品在线观看 国产一区二区三区国产精品 99久热re在线精品996热视频 亚洲国产网 在线视频亚洲一区 日韩字幕一中文在线综合 国产高清一级毛片在线不卡 精品国产色在线 国产高清视频一区二区 精品日本久久久久久久久久 亚洲国产午夜精品乱码 成人免费国产gav视频在线 日韩欧美一区二区在线观看 欧美曰批人成在线观看 韩国电影一区二区 99re这里只有精品6 日韩精品一区二区三区视频 99re6久精品国产首页 亚洲欧美一区二区三区导航 欧美色图一区二区三区 午夜精品视频在线观看 欧美激情在线观看一区二区三区 亚洲热在线 成人国产精品一区二区网站 亚洲一级毛片在线播放 亚洲一区小说区中文字幕 亚洲午夜久久久久影院 国产自产v一区二区三区c 国产精品视频免费 久久调教视频 国产成人91激情在线播放 国产精品欧美亚洲韩国日本久久 久久亚洲日本不卡一区二区 91中文字幕网 成人国产在线视频 国产视频91在线 欧美成人精品第一区二区三区 国产精品福利在线 久久综合九色综合精品 欧美一区二区三区精品 久久国产综合尤物免费观看 久久99青青久久99久久 日韩精品免费 久久国产精品999 91亚洲视频在线观看 国产精品igao视频 色综合区 在线亚洲欧国产精品专区 国产一区二区三区在线观看视频 亚洲精品成人在线 一区二区国产在线播放 中文在线亚洲 亚洲精品第一国产综合野 国产一区二区精品久久 一区二区三区四区精品视频 99热精品久久 中文字幕视频二区 国产成人精品男人的天堂538 99精品影视 美女福利视频一区二区 久久午夜夜伦伦鲁鲁片 综合久久久久久久综合网 国产精品国产欧美综合一区 国产99视频在线观看 国产亚洲女在线精品 婷婷影院在线综合免费视频 国产亚洲3p一区二区三区 91成人爽a毛片一区二区 亚洲一区二区高清 国产欧美亚洲精品第二区首页 欧美日韩导航 亚洲高清二区 欧美激情观看一区二区久久 日韩毛片在线播放 亚洲欧美日韩高清中文在线 亚洲日本在线播放 国产精品一区二区制服丝袜 精品国产一区二区三区不卡 国产不卡在线看 国产欧美网站 四虎永久在线观看视频精品 国产黄色片在线观看 夜夜综合 一本色道久久综合狠狠躁篇 欧美亚洲综合另类在线观看 国产91在线看 伊人久久国产 欧美一区二区在线观看免费网站 国产精品久久久久三级 久久福利 日韩中文字幕a 亚洲午夜久久久久影院 91在线高清视频 国产亚洲一区二区三区啪 久久人精品 国产精品亚洲午夜一区二区三区 综合久久久久久 久久伊人一区二区三区四区 国产综合久久久久久 日韩一区精品视频在线看 国产精品日韩欧美制服 日本精品1在线区 99re视频 无码av免费一区二区三区试看 国产视频1区 日韩欧美中文字幕一区 日本高清中文字幕一区二区三区a 亚洲国产欧美无圣光一区 国产在线视频一区二区三区 欧美国产第一页 在线亚洲欧美日韩 日韩中文字幕第一页 在线不卡一区二区 伊人久久青青 国产精品一区二区在线播放 www.五月婷婷 麻豆久久婷婷国产综合五月 亚洲精品区 久久国产欧美另类久久久 99在线视频免费 伊人久久中文字幕久久cm 久久精品成人免费看 久久这里只有精品首页 88国产精品视频一区二区三区 中文字幕日本在线mv视频精品 国产在线精品成人一区二区三区 伊人精品线视天天综合 亚洲一区二区黄色 国产尤物视频在线 亚洲精品99久久久久中文字幕 国产一区二区三区免费观看 伊人久久大香线蕉综合电影网 国产成人精品区在线观看 日本精品一区二区三区视频 日韩高清在线二区 久久免费播放视频 一区二区成人国产精品 国产精品免费精品自在线观看 亚洲精品视频二区 麻豆国产精品有码在线观看 精品日本一区二区 亚洲欧洲久久 久久中文字幕综合婷婷 中文字幕视频在线 国产成人精品综合在线观看 91精品国产91久久久久福利 精液呈暗黄色 香蕉国产综合久久猫咪 国产专区精品 亚洲精品无码不卡 国产永久视频 亚洲成a人片在线播放观看国产 一区二区国产在线播放 亚洲一区二区黄色 欧美日韩在线观看视频 亚洲精品另类 久久国产综合尤物免费观看 国产一区二区三区国产精品 高清视频一区 国产精品igao视频 国产精品资源在线 久久综合精品国产一区二区三区 www.五月婷婷 精品色综合 99热国产免费 麻豆福利影院 亚洲伊人久久大香线蕉苏妲己 久久电影院久久国产 久久精品伊人 在线日韩理论午夜中文电影 亚洲国产欧洲综合997久久 伊人国产精品 久草国产精品 欧美一区精品二区三区 亚洲成人高清在线 91免费国产精品 日韩精品福利在线 国产一线在线观看 国产不卡在线看 久久99青青久久99久久 亚洲精品亚洲人成在线播放 99久久免费看国产精品 国产日本在线观看 青草国产在线视频 麻豆久久婷婷国产综合五月 国产中文字幕一区 91久久精品国产性色也91久久 国产一区a 国产欧美日韩成人 国产亚洲女在线精品 一区二区美女 中文字幕在线2021一区 在线小视频国产 久久这里只有精品首页 国产在线第三页 欧美日韩中文字幕 在线亚洲+欧美+日本专区 精品国产一区二区三区不卡 久久这里精品 欧美在线va在线播放 精液呈暗黄色 91精品国产手机 91在线免费播放 欧美视频亚洲色图 欧美国产日韩精品 日韩高清不卡在线 精品视频免费观看 欧美日韩一区二区三区四区 国产欧美亚洲精品第二区首页 亚洲韩精品欧美一区二区三区 国产精品视频免费 在线精品小视频 久久午夜夜伦伦鲁鲁片 国产无套在线播放 久热这里只精品99re8久 欧美久久久久 久久香蕉国产线看观看精品蕉 国产成人精品男人的天堂538 亚洲人成网站色7799在线观看 日韩在线第二页 一本色道久久综合狠狠躁篇 国产一区二区三区不卡在线观看 亚洲乱码在线 在线观看欧美国产 久久福利青草精品资源站免费 国产玖玖在线观看 在线亚洲精品 亚洲成aⅴ人在线观看 精品91在线 欧美一区二三区 日韩中文字幕视频在线 日本成人一区二区 日韩免费专区 国内精品在线观看视频 久久国产综合尤物免费观看 国产精品系列在线观看 一本一道久久a久久精品综合 亚洲免费播放 久久精品国产免费 久久人精品 亚洲毛片网站 亚洲成a人一区二区三区 韩国福利一区二区三区高清视频 亚洲精品天堂在线 一区二区三区中文字幕 亚洲国产色婷婷精品综合在线观看 亚洲国产成人久久笫一页 999国产视频 国产精品香港三级在线电影 欧美日韩一区二区三区四区 日韩国产欧美 国产精品99一区二区三区 午夜国产精品理论片久久影院 亚洲精品中文字幕麻豆 亚洲国产高清视频 久久免费手机视频 日韩a在线观看 五月婷婷亚洲 亚洲精品中文字幕麻豆 中文字幕丝袜 www国产精品 亚洲天堂精品在线 亚洲乱码一区 国产日韩欧美三级 久久999精品 伊人热人久久中文字幕 久热国产在线视频 国产欧美日韩在线观看一区二区三区 国产一二三区在线 日韩国产欧美 91精品国产91久久久久 亚洲一区小说区中文字幕 精品一区二区免费视频 国产精品视频免费 国产精品亚洲综合色区韩国 亚洲国产精品成人午夜在线观看 欧美国产日韩精品 中文字幕精品一区二区精品