Web項(xiàng)目?jī)?yōu)化手冊(cè)_第1頁(yè)
Web項(xiàng)目?jī)?yōu)化手冊(cè)_第2頁(yè)
Web項(xiàng)目?jī)?yōu)化手冊(cè)_第3頁(yè)
Web項(xiàng)目?jī)?yōu)化手冊(cè)_第4頁(yè)
Web項(xiàng)目?jī)?yōu)化手冊(cè)_第5頁(yè)
已閱讀5頁(yè),還剩9頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 項(xiàng)目性能優(yōu)化手冊(cè)性能優(yōu)化手冊(cè)性能優(yōu)化手冊(cè)3Oracle優(yōu)化31、oracle虛擬內(nèi)存大小SGA_MAX_SIZE32、修改oracle內(nèi)核參數(shù)43、提高數(shù)據(jù)緩存命中率44、數(shù)據(jù)庫(kù)線程設(shè)置6WebLogic優(yōu)化71、修改weblogic域模式72、修改weblogic域環(huán)境的內(nèi)存大小73、設(shè)置 Perm區(qū)大小84、Weblogic數(shù)據(jù)庫(kù)連接池連接數(shù)設(shè)置85、weblogic線程池設(shè)置86、屬性文件weblogic.xml97、Weblogic優(yōu)化設(shè)置10線程粘滯(阻塞):10數(shù)據(jù)庫(kù)連接池調(diào)整11Ibatis調(diào)整11SQL性能優(yōu)化建議121、查看性能消耗多的SQL122、提高SQL查詢(xún)效率13F

2、AQ15Oracle優(yōu)化1、oracle虛擬內(nèi)存大小SGA_MAX_SIZESGA是一組包含一個(gè)Oracle實(shí)例的數(shù)據(jù)和控制信息的共享內(nèi)存結(jié)構(gòu)。SGA包括了各個(gè)緩沖區(qū)和內(nèi)存池,當(dāng)Oracle實(shí)例啟動(dòng)時(shí),各個(gè)內(nèi)存區(qū)只分配實(shí)例所需的最小大小,在隨后的運(yùn)行過(guò)程中,再根據(jù)需要擴(kuò)展它們的大小,而它們的總和大小受到SGA_MAX_SIZE的限制。SGA分配的是虛擬內(nèi)存,但是,我們?cè)谂渲肧GA時(shí),一定要使整個(gè)SGA區(qū)在物理內(nèi)存中,否則會(huì)導(dǎo)致SGA頻繁的頁(yè)入頁(yè)出,會(huì)極大的影響系統(tǒng)的性能。 配置SGA內(nèi)存大?。?#160;    一般是系統(tǒng)內(nèi)在的一半。系統(tǒng)內(nèi)存SGA_MAX_SIZ

3、E1G400-500M2G1G4G2500M8G5G查詢(xún)SGA內(nèi)存情況:SQL> show parameter sgaNAME           TYPE           VALUE-            -     - lock_sga         boolean       FALSEpre_page_sga 

4、60; boolean       FALSEsga_max_size    big integer   276Msga_target        big integer   276M修改SGA大?。篠QL> alter system set  sga_max_size =512M;alter system set sga_target=512MSQL> startup forceORACLE instance started.2、修改oracle內(nèi)核

5、參數(shù)kernel.shmmax :?jiǎn)蝹€(gè)共享內(nèi)存段的最大值,如果該參數(shù)設(shè)置小于Oracle SGA設(shè)置,那么SGA就會(huì)被分配多個(gè)共享內(nèi)存段。這在繁忙的系統(tǒng)中可能成為性能負(fù)擔(dān),帶來(lái)系統(tǒng)問(wèn)題。(以root身份進(jìn)行修改 /etc/sysctl.conf 這個(gè)文件,加入或者修改以下的語(yǔ)句:kernel.shmmax =4294967296)536870912 512M 修改前4294967296 4G 修改后3、提高數(shù)據(jù)緩存命中率從內(nèi)存中讀取數(shù)據(jù)要比從硬盤(pán)中讀取數(shù)據(jù)快10000倍,如果oracle用戶訪問(wèn)的數(shù)據(jù)塊在buffer cache 中(即命中cache hit),就直接從內(nèi)存中讀取該數(shù)

6、據(jù)塊,如果不在則先從磁盤(pán)文件中讀取到buffer cache ,然后才訪問(wèn)數(shù)據(jù)塊,而buffer cache 是被所有oracle進(jìn)程共享的。所以提高oracle buffer命中率就可以提高數(shù)據(jù)庫(kù)系統(tǒng)的性能。在Oracle數(shù)據(jù)庫(kù)中,有很多因素會(huì)影響到數(shù)據(jù)庫(kù)的緩存命中率。主要影響緩存命中率的有三個(gè)因素,分別為連接、索引與數(shù)據(jù)緩存的大小。(1)、數(shù)據(jù)庫(kù)緩存大小DB_CACHE_SIZE如果把這個(gè)參數(shù)設(shè)置的太大,則系統(tǒng)在切換后就很可能會(huì)莫名其妙的罷工;而若這個(gè)參數(shù)設(shè)置的太小,則管理員無(wú)論如何優(yōu)化數(shù)據(jù)庫(kù)系統(tǒng),其性能都會(huì)十分的有限,由于數(shù)據(jù)庫(kù)沒(méi)有足夠的數(shù)據(jù)緩存來(lái)處理相關(guān)的操作。假如

7、不考慮其它因素(如索引、連接)的影響,則一般情況下,假如這個(gè)參數(shù)設(shè)置的比較低的話,那么最近使用的數(shù)據(jù)就會(huì)被最近一次查詢(xún)的數(shù)據(jù)所覆蓋掉。如此的話,假如另外一個(gè)查詢(xún)需要重新調(diào)用這些被覆蓋的數(shù)據(jù),則就必須重新從服務(wù)器的硬盤(pán)中讀取相關(guān)的數(shù)據(jù)。此時(shí)就會(huì)極大的降低數(shù)據(jù)庫(kù)查詢(xún)的效率。9i 以后,推薦使用db_cache_size 來(lái)指定buffer cache 的大小。在OLTP 系統(tǒng)中,對(duì)于DB_CACHE_SIZE 的設(shè)置,我的推薦配置是:DB_CACHE_SIZE = SGA_MAX_SIZE/2 SGA_MAX_SIZE*2/3SQL> alter system set db_cache_si

8、ze=128M scope=spfile;          system altered.DB_CACHE_SIZE 是可以聯(lián)機(jī)修改的,即實(shí)例無(wú)需重啟。除了這個(gè)數(shù)據(jù)緩存大小為,還有索引、表連接等等。有時(shí)候可能索引或者表連接不合理,反而會(huì)造成很高的索引命中率。為此假如由于數(shù)據(jù)緩存命中率不高或者異常的高,在調(diào)整數(shù)據(jù)緩存之前最好先對(duì)索引或者表連接進(jìn)行優(yōu)化。對(duì)他們進(jìn)行調(diào)整之后,再來(lái)判斷是否需要調(diào)整數(shù)據(jù)緩存。一個(gè)良好性能的系統(tǒng),這一值一般保持在95%左右。查看當(dāng)前的Buffer Cache 命中率:SQL>select 1-(physical_r

9、eads)/(consistent_gets+db_block_gets)  from v$buffer_pool_statistics;  1-(PHYSICAL_READS)/(CONSISTENT  -     0.967658520581074SQL>(2)、索引和連接保證所有表都建有索引,SQL查詢(xún)盡可能的帶索引查詢(xún),否則建了索引也沒(méi)用,兩張表,百萬(wàn)數(shù)據(jù),全表掃描,再連接,很費(fèi)時(shí)間和性能。(3)、定期重建索引定期重建索引不僅可以提高查詢(xún)性能,還能增加索引表空間空閑空間大小。用Toad(Oracle應(yīng)用開(kāi)發(fā)工具

10、)看哪些索引需要重建, ALTER INDEX <INDEXNAME> REBUILD(4)、整理oracle碎片如果段的碎片過(guò)多, 將其數(shù)據(jù)壓縮到一個(gè)范圍的最簡(jiǎn)單方法便是用正確的存儲(chǔ)參數(shù)將這個(gè)段重建,然后將舊表中的數(shù)據(jù)插入到新表,同時(shí)刪除舊表。這個(gè)過(guò)程可以用 Import/Export (輸入 / 輸出)工具來(lái)完成。  Export命令有一個(gè)(壓縮)標(biāo)志,這個(gè)標(biāo)志在讀表時(shí)會(huì)引發(fā) Export 確定該表所分配的物理空間量,它會(huì)向輸出轉(zhuǎn)儲(chǔ)文件寫(xiě)入一個(gè)新的初始化存儲(chǔ)參數(shù) - 等于全部所分配空間。若這個(gè)表關(guān)閉, 則使用 Import工具重新生成。這樣,它的數(shù)據(jù)會(huì)放入一

11、個(gè)新的、較大的初始段中。例如: 1)、導(dǎo)出整個(gè)庫(kù):exp user/password file=exp.dmp compress=Y grants=Y indexes=Y  tables=(table1,table2); 2)、若輸出成功,則從庫(kù)中刪除已輸出的表,然后從輸出轉(zhuǎn)儲(chǔ)文件中輸入表: imp user/password file=exp.dmp commit=Y buffer=64000 full=Y 這種方法可用于整個(gè)數(shù)據(jù)庫(kù)。 4、數(shù)據(jù)庫(kù)線程設(shè)置通過(guò)設(shè)置以下語(yǔ)句查詢(xún)和設(shè)置oracle的線程數(shù):-查詢(xún)最大線程數(shù):show pa

12、rameter processes;-更改線程連接數(shù): alter system set processes=500 scope=spfile;設(shè)置完重啟數(shù)據(jù)庫(kù),啟動(dòng)后通過(guò)查詢(xún)最大線程連接數(shù)(show parameter processes)查看是否設(shè)置正確并生效。說(shuō)明:默認(rèn)是150個(gè),這個(gè)量并非越大越好,需要根據(jù)硬件性能來(lái)設(shè)置。WebLogic優(yōu)化Weblogic環(huán)境:CPU 4core     內(nèi)存  8G1、修改weblogic域模式設(shè)置為生產(chǎn)模式, 修改前是開(kāi)發(fā)模式。點(diǎn)擊basicWLSDomain,然后點(diǎn)擊鎖定并編輯,勾選生產(chǎn)模式即可。2、修改weblo

13、gic域環(huán)境的內(nèi)存大小jvm heap 內(nèi)存大小設(shè)置成Xms4000m -Xmx4000m ,修改前 Xms512m -Xmx512m修改文件:setDomainEnv.shif "$JAVA_VENDOR" = "Sun" ; thenWLS_MEM_ARGS_64BIT="-Xms256m -Xmx512m"export WLS_MEM_ARGS_64BITWLS_MEM_ARGS_32BIT="-Xms512m Xmx512m" /修改成Xms4000m -Xmx4000mexport WLS_MEM_ARG

14、S_32BITelseWLS_MEM_ARGS_64BIT="-Xms512m -Xmx512m"export WLS_MEM_ARGS_64BITWLS_MEM_ARGS_32BIT="-Xms512m -Xmx512m" /修改成Xms4000m -Xmx4000mexport WLS_MEM_ARGS_32BITfi說(shuō)明:紅色字為修改的內(nèi)容,具體修改值根據(jù)實(shí)際物理內(nèi)存而定,一般為物理內(nèi)存的一半。32位操作系統(tǒng)JDK內(nèi)存系統(tǒng):最大可設(shè)置為1.5G,如果設(shè)置過(guò)大,會(huì)導(dǎo)致服務(wù)無(wú)法啟動(dòng)。64位操作系統(tǒng)JDK內(nèi)存系統(tǒng):最大可設(shè)置為物理內(nèi)存的60%80%。3、

15、設(shè)置 Perm區(qū)大小修改setDomainEnv.cmd文件修改之前是-XX:PermSize=128m-XX:MaxPermSize=256m修改之后是-XX:PermSize=800m-XX:MaxPermSize=1024m4、Weblogic數(shù)據(jù)庫(kù)連接池連接數(shù)設(shè)置受oracle數(shù)據(jù)庫(kù)連接數(shù)的影響,可以參照同一時(shí)間連接數(shù)據(jù)庫(kù)的用戶數(shù)量進(jìn)行設(shè)置,數(shù)據(jù)庫(kù)的最大連接數(shù)不能小于高峰時(shí)期同一時(shí)間連接用戶的數(shù)量。點(diǎn)擊數(shù)據(jù)源,進(jìn)入后選擇連接池:初始容量:20 默認(rèn)1最大容量:50 默認(rèn)15容量增長(zhǎng):5 默認(rèn)1說(shuō)明:設(shè)置前得設(shè)置數(shù)據(jù)庫(kù)的最大并發(fā)線程數(shù),見(jiàn)(Oracle優(yōu)化4數(shù)據(jù)庫(kù)線程設(shè)置)。因?yàn)閣ebl

16、ogic節(jié)點(diǎn)的連接池最大連接數(shù)之和不能大于數(shù)據(jù)庫(kù)的最大線程數(shù)。5、weblogic線程池設(shè)置Weblogic8.x之前線程都是通過(guò)手動(dòng)設(shè)置,weblogic9.x之后系統(tǒng)線程由weblogic自動(dòng)按需分配。但仍可以手動(dòng)的修改weblogic配置來(lái)改變線程數(shù)。第一種方式:修改腳本OracleMiddlewareuser_projectsdomainsbase_domainbin下的startWebLogic.sh在腳本中增加如下參數(shù):echo "$JAVA_HOME/bin/java $JAVA_VM $MEM_ARGS -Dweblogic.Name=$SERVER_NAME -Dj

17、ava.security.policy=$WL_HOME/server/lib/weblogic.policy -Dweblogic.threadpool.MinPoolSize=100 -Dweblogic.threadpool.MaxPoolSize=500 $JAVA_OPTIONS $PROXY_SETTINGS $SERVER_CLASS"第二種方式:修改OracleMiddlewareuser_projectsdomainsbase_domainconfig下的config.xml文件在config.xml中,增加如下參數(shù):<server><name&g

18、t;AdminServer</name><self-tuning-thread-pool-size-min>100</self-tuning-thread-pool-size-min><self-tuning-thread-pool-size-max>500</self-tuning-thread-pool-size-max > <listen-address></listen-address> </server>以上兩種方法適合weblogic9,10,11g6、屬性文件weblogic.xml所

19、在目錄:OracleMiddlewarewlserver_10.3serverlibconsoleappwebappWEB-INF如果是windows系統(tǒng)加上盤(pán)符。Weblogic Server允許通過(guò)設(shè)置Weblogic應(yīng)用程序擴(kuò)展描述符(weblogic.xml)配置jsp容器,可配置的元素包含在<weblogic-web-app></weblogic-web-app>根節(jié)點(diǎn)下。7、Weblogic優(yōu)化設(shè)置數(shù)據(jù)庫(kù)oracle10g 硬件配置:8核CPU、 8G內(nèi)存 ,Weblogic11g平臺(tái)服務(wù)器類(lèi)型系統(tǒng)軟件參數(shù)類(lèi)型參數(shù)值備注數(shù)據(jù)庫(kù)服務(wù)器Oracle最大連接數(shù)50

20、0 默認(rèn)值150應(yīng)用服務(wù)器Weblogic數(shù)據(jù)庫(kù)連接池初始連接數(shù):50最大連接數(shù):100步長(zhǎng):5默認(rèn)1默認(rèn)15默認(rèn)1積壓數(shù)300默認(rèn)登錄超時(shí)時(shí)間5000ms默認(rèn)JDK內(nèi)存設(shè)置最小內(nèi)存:3072M最大內(nèi)存:4096M默認(rèn)256512M線程數(shù)最小線程:2500最大線程:5000默認(rèn)沒(méi)有參數(shù)domain->server->配置->優(yōu)化:接受積壓:300登錄超時(shí):5000 mS線程粘滯(阻塞):weblogic警告: threadPool has stuck threads(線程池阻塞線程)domain->server->配置->優(yōu)化粘滯(阻塞)線程最長(zhǎng)時(shí)間:在此服

21、務(wù)器將線程診斷為阻塞線程之前,線程必須連續(xù)工作的時(shí)間長(zhǎng)度(秒)。默認(rèn)情況下,WebLogic Server 認(rèn)為線程在連續(xù)工作 600 秒后成為阻塞線程。粘滯(阻塞)線程計(jì)時(shí)器間隔:WebLogic Server 定期掃描線程以查看它們是否已經(jīng)連續(xù)工作了 "阻塞線程最長(zhǎng)時(shí)間" 字段中指定的時(shí)間長(zhǎng)度的間隔時(shí)間(秒)。默認(rèn)情況下,WebLogic Server 將此時(shí)間間隔設(shè)置為 600 秒。domain->server->配置->超載最長(zhǎng)線程粘滯時(shí)間:600 默認(rèn)為600s粘滯線程計(jì)數(shù):20 默認(rèn)為0數(shù)據(jù)庫(kù)連接池調(diào)整優(yōu)化之前使用的是默認(rèn)連接池和參數(shù),優(yōu)化之后

22、改為JNDI方式連接。默認(rèn)的連接方式:<datasources transaction-manager="local"><datasource id="1" name="測(cè)試數(shù)據(jù)庫(kù)" type="Oracle"><connection user-name="ZXC_TEST" password="ZXC_TEST" server-name="31" port="1521" db-nam

23、e="testdb"></connection></datasource></datasources>JNDI連接方式:<datasources transaction-manager="local"><datasource id="1" name="測(cè)試數(shù)據(jù)庫(kù)" type="Oracle"><connection jndi="jdbc/test" ></connection></

24、datasource></datasources>在weblogic控制臺(tái)創(chuàng)建oracle連接池同時(shí)調(diào)整 weblogic datasource 的參數(shù) 初始連接數(shù)40 、最大連接數(shù) 100、 空閑數(shù)30、緩存180。Ibatis調(diào)整調(diào)整sqlmap-config.xml文件調(diào)整前:<settings cacheModelsEnabled="true" enhancementEnabled="true"lazyLoadingEnabled="true" maxRequests="32" ma

25、xSessions="10"maxTransactions="5" useStatementNamespaces="true" />調(diào)整后:<settings cacheModelsEnabled="true" enhancementEnabled="true"lazyLoadingEnabled="true" maxRequests="200" maxSessions="100"maxTransactions="

26、80" useStatementNamespaces="true" />SQL性能優(yōu)化建議1、查看性能消耗多的SQL可以使用下面的SQL查看消耗IO和CPU比較多的SQL,要看清楚是應(yīng)用程序執(zhí)行的SQL還是系統(tǒng)執(zhí)行的SQL。也可能通過(guò)oracle控制臺(tái)來(lái)查看要優(yōu)化的SQL。(1)、獲取磁盤(pán)IO前100位的SQL,IO消耗多的一般都是執(zhí)行比較慢的SQL,需要重點(diǎn)優(yōu)化。大多為應(yīng)用程序執(zhí)行的SQL。SELECT * FROM (SELECT parsing_user_id, executions, sorts, command_type, disk_reads,

27、sql_text, S.HASH_VALUE FROM v$sqlarea s WHERE S.PARSING_USER_ID = uid ORDER BY disk_reads DESC) WHERE rownum < 100;(2)、獲取CPU消耗前100位的SQL。大多為系統(tǒng)執(zhí)行的SQL。SELECT * FROM (SELECT parsing_user_id, executions, sorts, disk_reads, s.BUFFER_GETS, s.CPU_TIME, s.ELAPSED_TIME, sql_text, command_type, S.HASH_VALUE

28、 FROM v$sqlarea s WHERE S.PARSING_USER_ID = uid ORDER BY CPU_TIME DESC) WHERE rownum < 100;2、提高SQL查詢(xún)效率(1)、where子句中的連接順序ORACLE采用自下而上的順序解析WHERE子句。根據(jù)這個(gè)原理,表之間的連接必須寫(xiě)在其他WHERE條件之前,那些可以過(guò)濾掉最大數(shù)量記錄的條件必須寫(xiě)在WHERE子句的末尾。(2)、select子句中避免使用“*”O(jiān)RACLE在解析的過(guò)程中, 會(huì)將*依次轉(zhuǎn)換成所有的列名,這個(gè)工作是通過(guò)查詢(xún)數(shù)據(jù)字典完成的。這意味著將耗費(fèi)更多的時(shí)間。(3)、減少訪問(wèn)數(shù)據(jù)庫(kù)的次數(shù)

29、ORACLE在內(nèi)部執(zhí)行了許多工作:解析SQL語(yǔ)句,估算索引的利用率,綁定變量,讀數(shù)據(jù)塊等。(4)、使用decode函數(shù)來(lái)減少處理時(shí)間使用DECODE函數(shù)可以避免重復(fù)掃描相同記錄或重復(fù)連接相同的表。(5)、 用Where子句替換HAVING子句避免使用HAVING子句, HAVING 只會(huì)在檢索出所有記錄之后才對(duì)結(jié)果集進(jìn)行過(guò)濾.。這個(gè)處理需要排序,總計(jì)等操作。如果能通過(guò)WHERE子句限制記錄的數(shù)目,那就能減少這方面的開(kāi)銷(xiāo)。where的作用時(shí)間是在計(jì)算之前就完成的,而having就是在計(jì)算后才起作用的,所以在這種情況下,兩者的結(jié)果會(huì)不同。在多表聯(lián)接查詢(xún)時(shí),on比where更早起作用。系統(tǒng)

30、首先根據(jù)各個(gè)表之間的聯(lián)接條件,把多個(gè)表合成一個(gè)臨時(shí)表后,再由where進(jìn)行過(guò)濾,然后再計(jì)算,計(jì)算完后再由having進(jìn)行過(guò)濾。(6)、 通過(guò)內(nèi)部函數(shù)提高SQL效率復(fù)雜的SQL往往犧牲了執(zhí)行效率。能夠運(yùn)用函數(shù)解決問(wèn)題的方法在實(shí)際工作中是非常有意義的。(7)、使用表的別名(Alias)當(dāng)在SQL語(yǔ)句中連接多個(gè)表時(shí),請(qǐng)使用表的別名并把別名前綴于每個(gè)Column上.這樣一來(lái),就可以減少解析的時(shí)間并減少那些由Column歧義引起的語(yǔ)法錯(cuò)誤。(8)、用EXISTS替代IN、用NOT EXISTS替代NOT IN在許多基于基礎(chǔ)表的查詢(xún)中,為了滿足一個(gè)條件,往往需要對(duì)另一個(gè)表進(jìn)行聯(lián)接。在這種情況下,

31、 使用EXISTS(或NOT EXISTS)通常將提高查詢(xún)的效率。在子查詢(xún)中,NOT IN子句將執(zhí)行一個(gè)內(nèi)部的排序和合并。無(wú)論在哪種情況下,NOT IN都是最低效的 (因?yàn)樗鼘?duì)子查詢(xún)中的表執(zhí)行了一個(gè)全表遍歷)。為了避免使用NOT IN,我們可以把它改寫(xiě)成外連接(Outer Joins)或NOT EXISTS。例子:(高效)SELECT * FROM EMP  WHERE EMPNO > 0 AND EXISTS (SELECT X FROM DEPT WHERE DEPT.DEPTNO = EMP.DEPTNO AND LOC = MELB) (低效)SELECT 

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論