日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

NOLOGGINGFORCE LOGGING

發(fā)布時(shí)間:2024/8/26 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 NOLOGGINGFORCE LOGGING 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

=======================NOLOGGING&&FORCE LOGGING=================================

關(guān)于nologging:

You can create tables and indexes with the CREATE TABLE AS SELECT statement. You can also specify that the database create them with the NOLOGGING option. When you create a table or index as NOLOGGING, the database does not generate redo log records for the operation. Thus, you cannot recover objects created with NOLOGGING, even if you are running in ARCHIVELOG mode.

Be aware that when you perform media recovery, and some tables or indexes are created normally whereas others are created with the NOLOGGING option, the NOLOGGING objects are marked logically corrupt by the RECOVER operation.?
Any attempt to access the unrecoverable objects returns an ORA-01578 error message. Drop the NOLOGGING objects and re-create them if needed.


關(guān)于Force logging
Specifying FORCE LOGGING Mode
Some data definition language statements (such as CREATE TABLE) allow the NOLOGGING clause, which causes some database operations not to generate redo records in the database redo log. The NOLOGGING setting can speed up operations that can be easily recovered outside of the database recovery mechanisms, but it can negatively affect media recovery and standby databases.

Oracle Database lets you force the writing of redo records even when NOLOGGING has been specified in DDL statements. The database never generates redo records for temporary tablespaces and temporary segments, so forced logging has no affect for objects.

nologging,logging,force logging分為對(duì)象級(jí)(DDL創(chuàng)建表或索引的時(shí)候使用了nologging或其他),表空間級(jí),數(shù)據(jù)庫(kù)級(jí)。force logging會(huì)比nologging“權(quán)利" 更大

force logging就是忽略nologging


Oracle數(shù)據(jù)庫(kù)中有多種創(chuàng)建表的方式。如可以通過(guò)復(fù)制其他表的方式來(lái)建立數(shù)據(jù)庫(kù)表;而可以利用Select查詢(xún)語(yǔ)句從其他數(shù)據(jù)庫(kù)對(duì)象中查詢(xún)數(shù)據(jù)并生成新的數(shù)據(jù)庫(kù)表。但是如果利用這些形式來(lái)建立表的話(huà)(即在建立表的時(shí)候同時(shí)在新表中插入數(shù)據(jù)),如果數(shù)據(jù)比較多,則這個(gè)建表的速度會(huì)比較慢。這主要是因?yàn)槟J(rèn)情況下,建立表、插入數(shù)據(jù)等動(dòng)作都會(huì)先寫(xiě)入到重做日志文件中,然后再建立相關(guān)的表并插入記錄。也就是說(shuō),相當(dāng)于數(shù)據(jù)庫(kù)系統(tǒng)這個(gè)動(dòng)作要操作兩遍。這就降低了數(shù)據(jù)庫(kù)建表的速度。當(dāng)記錄越多,這速度就會(huì)越慢。
  Nologging選項(xiàng)就是讓數(shù)據(jù)庫(kù)在插入大量數(shù)據(jù)或者進(jìn)行其他復(fù)雜操作時(shí)不寫(xiě)重新操作,而是直接建立表或者插入數(shù)據(jù)。但是Nologging參數(shù)的使用也會(huì)受到一定的限制。
  一、 Nologging使用的限制。
  Nologging選項(xiàng)使用的限制主要體現(xiàn)在兩個(gè)方面,一是并不是所有的語(yǔ)句都支持這個(gè)選項(xiàng);二是其生效的時(shí)間跟數(shù)據(jù)庫(kù)的歸檔模式相關(guān)。如數(shù)據(jù)庫(kù)管理員可能需要一次性更新某個(gè)表中上百萬(wàn)條的紀(jì)錄。此時(shí)管理員可以通過(guò)Update語(yǔ)句來(lái)更新。但是因?yàn)檫@個(gè)更新動(dòng)作會(huì)同時(shí)寫(xiě)入到重做日志當(dāng)中。所以當(dāng)記錄比較多(或者表之間關(guān)聯(lián)更新)的時(shí)候,執(zhí)行Update更新語(yǔ)句會(huì)花費(fèi)比較長(zhǎng)的時(shí)間。此時(shí)能否可以采用Nologging語(yǔ)句來(lái)提高更新性能呢?答案是否定的,因?yàn)閁pdate更新語(yǔ)句不支持Nologging這個(gè)選項(xiàng)。故數(shù)據(jù)庫(kù)管理員在采用這個(gè)參數(shù)時(shí),需要知道那些語(yǔ)句支持這個(gè)語(yǔ)句,哪些語(yǔ)句不支持。
  另外Nologging參數(shù)的生效還跟數(shù)據(jù)庫(kù)的運(yùn)作模式相關(guān)。通常情況下數(shù)據(jù)庫(kù)運(yùn)作模式有歸檔日至模式與非歸檔日志模式的差異。在非歸檔日志模式下,數(shù)據(jù)庫(kù)將不會(huì)對(duì)重做日志文件進(jìn)行歸檔操作。而在歸檔模式下,數(shù)據(jù)庫(kù)系統(tǒng)將對(duì)重做日志文件進(jìn)行歸檔操作。即在日志發(fā)生切換時(shí),系統(tǒng)進(jìn)程先要等待歸檔進(jìn)程將下一個(gè)重做日志文件歸檔完畢后才寫(xiě)入重做日志文件,覆蓋其中的重做日志文件。Nologging選項(xiàng)是否生效,還直接跟這兩個(gè)操作模式有關(guān)。根據(jù)筆者的了解,同樣是采用了Nologging選項(xiàng),相對(duì)來(lái)說(shuō)在非歸檔模式下要比在歸檔模式下效果明顯一點(diǎn)。
  再者數(shù)據(jù)庫(kù)工程師要明白一個(gè)問(wèn)題,就是direct insert也可以成批插入數(shù)據(jù)。不過(guò)這個(gè)插入跟insert插入有區(qū)別。前者在插入數(shù)據(jù)的時(shí)候,不會(huì)寫(xiě)重做日志。而后者常規(guī)插入的話(huà),則會(huì)寫(xiě)入重做日志中。此時(shí),nologgin選項(xiàng)對(duì)于他們來(lái)說(shuō)是不起作用的。故如果數(shù)據(jù)庫(kù)工程師需要插入大量的數(shù)據(jù)并且要提高插入的速度,則要注意此時(shí)nologging選項(xiàng)對(duì)于insert語(yǔ)句不起作用。此時(shí)數(shù)據(jù)庫(kù)工程師只能夠通過(guò)direct insert語(yǔ)句來(lái)提高插入效率。因?yàn)檫@條語(yǔ)句默認(rèn)情況下是不會(huì)寫(xiě)入重做日志的。
  二、 Nologging的典型應(yīng)用。
  雖然Nologging選賢在使用時(shí)受到不少的限制,但是在實(shí)際工作中其仍然是一個(gè)很有用的工具,特別是數(shù)據(jù)庫(kù)在初始化的時(shí)候其特別有效。具體的來(lái)說(shuō)在如下幾種情況中利用這個(gè)參數(shù)可以提高操作效率。
  一是當(dāng)數(shù)據(jù)庫(kù)管理員通過(guò)CREATE TABLE AS SELECT(即數(shù)據(jù)庫(kù)管理員可以通過(guò)查詢(xún)語(yǔ)句來(lái)創(chuàng)建表)語(yǔ)句創(chuàng)建表時(shí),筆者建立在語(yǔ)句中加入Nologging選項(xiàng)。特別是當(dāng)記錄比較多的時(shí)候。此時(shí)加入這個(gè)參數(shù),可以避免在創(chuàng)建表的過(guò)程中產(chǎn)生過(guò)多的重做記錄。如此的話(huà),不僅可以節(jié)省重做日志文件的存儲(chǔ)空間,而且還能夠加快表的創(chuàng)建速度。一舉多得,值得數(shù)據(jù)庫(kù)管理員去嘗試。
  二是在創(chuàng)建大表的時(shí)候也適宜采用這個(gè)參數(shù)。通常情況下,Nologging參數(shù)更加適合于創(chuàng)建大表時(shí)采用。在創(chuàng)建大表(同時(shí)需要插入大量數(shù)據(jù))時(shí)加上這個(gè)參數(shù),相對(duì)于創(chuàng)建小表來(lái)說(shuō),能夠獲得更加明顯的速度提升。
  同時(shí)數(shù)據(jù)庫(kù)工程師需要注意,執(zhí)行Update更新語(yǔ)句時(shí),這個(gè)參數(shù)會(huì)失效。故有時(shí)候數(shù)據(jù)庫(kù)管理員會(huì)發(fā)現(xiàn)一個(gè)奇怪的問(wèn)題,更新一百萬(wàn)條記錄比插入同樣的一百萬(wàn)條記錄速度還慢。這很可能是因?yàn)樵诓迦霐?shù)據(jù)的時(shí)候采用了Nologging參數(shù)或者是采用direct insert語(yǔ)句。他們不會(huì)在插入數(shù)據(jù)的同時(shí)寫(xiě)入重做日志。那么如何才能夠提高update語(yǔ)句的執(zhí)行效率呢?這是一個(gè)很復(fù)雜的問(wèn)題,三言?xún)烧Z(yǔ)也說(shuō)不清楚。簡(jiǎn)單的來(lái)說(shuō),在update更新語(yǔ)句中,是不能夠通過(guò)這個(gè)參數(shù)來(lái)限制其重做日志的操作。不過(guò)可以通過(guò)其他方式來(lái)提高其執(zhí)行效率。如可以把所需要修改數(shù)據(jù)的數(shù)據(jù)表中索引等先暫時(shí)停用掉,等到數(shù)據(jù)更新完成后再啟用。這就可以比較明顯的提高數(shù)據(jù)更新效率。

總結(jié)

以上是生活随笔為你收集整理的NOLOGGINGFORCE LOGGING的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。