91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

數據庫中使用create table...as select *語句要注意什么

發布時間:2021-11-11 11:16:01 來源:億速云 閱讀:749 作者:小新 欄目:關系型數據庫

這篇文章主要介紹數據庫中使用create table...as select *語句要注意什么,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

1、再做一些數據遷移時候,很多人會使用create table  as select * from table where id=-1的方式來年建立一摸一樣的表,但是這樣做有個很大的弊端,不能將原表中的default value也一同遷移過來。

2、  Using the CREATE TABLE ... AS SELECT ... command: This command will copy acrooss to the new table all the data,but the constraints triggers ,and so on will not be transferred to the new table.

        那些都是not null約束,其他的約束和trigger是帶不過來了,嚴格說來not null也是約束的一種,只不過教材上把它排除在外了吧。

慎用create table as select,一定要注意默認值的問題

oraclecreate talbe as select數據庫遷移 

再做一些數據遷移時候,很多人會使用create table  as select * from table where id=-1的方式來年建立一摸一樣的表,但是這樣做有個很大的弊端,不能將原表中的default value也一同遷移過來,可以看下面的例子:

第一,新建一個表

-- Create table

create table table01

(

  id        number(16),

  add_date  date default sysdate,

  status    number(1),

  entp_code varchar2(200)

)

第二,使用create table table02 as

select * From table01 where id=-1

第三、看看兩個表的結構,會發現第二張表的defaule value沒有了,如下2圖,可以很明顯看出來,表02的add_date的默認值得sysdate沒有了

table01的表結構

數據庫中使用create table...as select *語句要注意什么

table02的表結構

數據庫中使用create table...as select *語句要注意什么

Create table as select性能簡介:

在數據庫中移動數據最快的方法是將其從一個表移動到別一個表,而不是需要進入操作系統將數據從一個表移動到別一個表,有一些常見的方法可用于提高數據遷移的性能:

1.             調整表的結構(刪除索引和觸發器)

2.             在數據遷移期間禁用約束

3.             使用提示和選項來改進事務性能

第一個技巧是調整表的結構,它涉及禁用目標表上面的任何觸發器或索引。例如,如果在目標表上有行級觸發器,則插入到表中的每一行都會執行觸發器。如果可能的話,最好在數據插入之前將目標表的觸發器禁用;如果應該為每個插入的行執行該觸發器,則可以在批量插入完成以后再創建此觸發器,而不應該在批量插入期間每插入一條數據重復執行觸發器。

除了禁用觸發器,應該在啟動數據加載之前刪除目標表上面的索引,然后在數據加載完畢后再重新創建索引。如果索引留在表上,ORACLE將在插入每一行時動態管理索引。

注意:刪除索引和禁用觸發器可以解決大多數數和大型表與表之間數據遷移中遇到的性能問題。

除了禁用索引,還要考慮到表上的約束。如果源數據已經在數據庫的表中,在將數據加載到目標表之前,可以檢查該數據了解它的相關約束(例如外鍵或check約束),一旦加載數據完成就可以重新啟用這些約束。

如果以上選項無法提供適當的性能,就應該調查Oracle為數據遷移調整引入的選項。這些選項包括如下:

1.插入命令的APPPEND提示   類似于Direct  Path Loader,APPENED提示將數據塊加載到表中,從表的高水位線開始。使用APPENED提示可以增加空間利用率。

2.Nologging選項  如果正在執行create  table as select 命令,使用nologing選項可避免在操作期間寫入重做日志文件。

3.并行選項   并行查詢使用多個進程來完成一個任務。對于create  table as select命令,可并行化create table 部分和查詢部分。如果使用并行選項,則也應該使用nologing選項,否則并行操作將不得不由于串行化寫入到聯機重做日志文件而等待。

在使用這些高級選項之前,應該首先調查目標表的結構,確保已經避免前面提到的一些常見問題。

以上是“數據庫中使用create table...as select *語句要注意什么”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南岸区| 鄂温| 宽城| 丹棱县| 兰溪市| 汤原县| 长泰县| 乌兰察布市| 衢州市| 高淳县| 仁寿县| 木兰县| 砚山县| 新津县| 普陀区| 礼泉县| 射阳县| 赤峰市| 体育| 梁河县| 长丰县| 沙坪坝区| 庆城县| 平原县| 昭平县| 沙湾县| 和林格尔县| 乌拉特后旗| 镇原县| 无极县| 丘北县| 平乡县| 红安县| 炎陵县| 洞口县| 铜陵市| 晋中市| 化德县| 阳城县| 新津县| 东宁县|