电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

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

在DB2中提高INSERT性能的技巧(1)

瀏覽:251日期:2023-03-24 09:22:44
正在看的db2教程是:在DB2中提高INSERT性能的技巧(1)。

INSERT 處理過(guò)程概述

首先讓我們快速地看看插入一行時(shí)的處理步驟。這些步驟中的每一步都有優(yōu)化的潛力,對(duì)此我們?cè)诤竺鏁?huì)一一討論。

  1. 在客戶機(jī)準(zhǔn)備 語(yǔ)句。對(duì)于動(dòng)態(tài) SQL,在語(yǔ)句執(zhí)行前就要做這一步,此處的性能是很重要的;對(duì)于靜態(tài) SQL,這一步的性能實(shí)際上關(guān)系不大,因?yàn)檎Z(yǔ)句的準(zhǔn)備是事先完成的。
  2. 在客戶機(jī),將要插入的行的各個(gè) 列值組裝起來(lái),發(fā)送到 DB2 服務(wù)器。
  3. DB2 服務(wù)器確定將這一行插入到哪一頁(yè)中。
  4. DB2 在 用于該頁(yè)的緩沖池中預(yù)留一個(gè)位置。如果 DB2 選定的是一個(gè)已有的頁(yè),那么就需要讀磁盤;如果使用一個(gè)新頁(yè),則要在表空間(如果是SMS,也就是系統(tǒng)管理存儲(chǔ)的表空間)中為該頁(yè)物理地分配空間。插入了新行的每一頁(yè)最后都要從緩沖池寫(xiě)入到磁盤。
  5. 在目標(biāo)頁(yè)中對(duì)該行進(jìn)行格式化,并獲得該行上的一個(gè)X(exclusive,獨(dú)占的) 行鎖。
  6. 將反映該 insert 的一條記錄寫(xiě)入到日志緩沖區(qū)中。
  7. 最后提交包含該 insert 的事務(wù),如果這時(shí)日志緩沖區(qū)中的記錄還沒(méi)有被寫(xiě)入日志文件的話,則將這些記錄寫(xiě)到日志文件中。
此外,還可能發(fā)生很多類型的附加處理,這取決于數(shù)據(jù)庫(kù)配置,例如,索引或觸發(fā)器的存在。這種額外的處理對(duì)于性能來(lái)說(shuō)也是意義重大的,我們?cè)诤竺鏁?huì)討論到。

insert 的替代方案

在詳細(xì)討論 insert 的優(yōu)化之前,讓我們先考慮一下 insert 的兩種替代方案:load 和 import。import 實(shí)用程序?qū)嶋H上是 SQL INSERT 的一個(gè)前端,但它的某些功能對(duì)于您來(lái)說(shuō)也是有用的。load 也有一些有用的額外功能,但是我們使用 load 而不使用 insert 的主要原因是可以提高性能。

load 直接格式化數(shù)據(jù)頁(yè),而避免了由于插入導(dǎo)致的對(duì)每一行進(jìn)行處理的大部分開(kāi)銷(例如,日志記錄在這里實(shí)際上是消除了)。而且,load 可以更好地利用多處理器機(jī)器上的并行性。在 V8 load 中有兩個(gè)新功能,它們對(duì)于 load 成為 insert 的替代方案有著特別的功效,這兩個(gè)功能是:從游標(biāo)裝載和從調(diào)用層接口(CLI)應(yīng)用程序裝載。

從游標(biāo)裝載


這種方法可用于應(yīng)用程序的程序代碼(通過(guò) db2Load API),或用于 DB2 腳本。下面是后一種情況的一個(gè)例子:
declare staffcursor cursor forselect * from staff;
load from staffcursor of cursor insert into myschema.new_staff;

這兩行可以用下面一行替代:
insert into myschema.new_staff select * from staff
同等效的 INSERT ... SELECT 語(yǔ)句相比,從游標(biāo)裝載幾乎可以提高 20% 的性能。

從 CLI 裝載


這種方法顯然只限于調(diào)用層接口(CLI)應(yīng)用程序,但是它非常快。這種技巧非常類似于數(shù)組插入,DB2 附帶了這樣的示例,使用 load 時(shí)的速度是使用經(jīng)過(guò)完全優(yōu)化的數(shù)組插入時(shí)的兩倍,幾乎要比未經(jīng)優(yōu)化的數(shù)組插入快 10 倍。

所有 insert 可以改進(jìn)的地方

讓我們看看插入處理的一些必要步驟,以及我們可以用來(lái)優(yōu)化這些步驟的技巧。

1. 語(yǔ)句準(zhǔn)備


作為一條 SQL 語(yǔ)句,INSERT 語(yǔ)句在執(zhí)行之前必須由 DB2 進(jìn)行編譯。這一步驟可以自動(dòng)發(fā)生(例如在 CLP 中,或者在一次 CLI SQLExecDirect 調(diào)用中),也可以顯式地進(jìn)行(例如,通過(guò)一條 SQL Prepare、CLI SQLPrepare 或 JDBC prepareStatement 語(yǔ)句)。該編譯過(guò)程牽涉到授權(quán)檢查、優(yōu)化,以及將語(yǔ)句轉(zhuǎn)化為可執(zhí)行格式時(shí)所需的其他一些活動(dòng)。在編譯語(yǔ)句時(shí),語(yǔ)句的訪問(wèn)計(jì)劃被存儲(chǔ)在包緩存中。

如果重復(fù)地執(zhí)行相同的 INSERT 語(yǔ)句,則該語(yǔ)句的訪問(wèn)計(jì)劃(通常)會(huì)進(jìn)入到包緩存中,這樣就免除了編譯的開(kāi)銷。然而,如果 insert 語(yǔ)句對(duì)于每一行有不同的值,那么每一條語(yǔ)句都將被看成是惟一的,必須單獨(dú)地進(jìn)行編譯。因此,將像下面這樣的重復(fù)語(yǔ)句:
insert into mytable values (1, "abc")
insert into mytable values (2, "def")

等等,
換成帶有參數(shù)標(biāo)記的語(yǔ)句,一次準(zhǔn)備,重復(fù)執(zhí)行,這樣做是十分可取的:
insert into mytable values (?, ?)

使用參數(shù)標(biāo)記可以讓一系列的 insert 的運(yùn)行速度提高數(shù)倍。(在靜態(tài) SQL 程序中使用主機(jī)變量也可以獲得類似的好處。)

2. 發(fā)送列值到服務(wù)器


可以歸為這一類的優(yōu)化技巧有好幾種。最重要的一種技巧是在每條 insert 語(yǔ)句中包括多行,這樣就可以避免對(duì)于每一行都進(jìn)行客戶機(jī)-服務(wù)器通信,同時(shí)也減少了 DB2 開(kāi)銷。可用于多行插入的技巧有:

    [1] [2] 下一篇

標(biāo)簽: DB2
相關(guān)文章:
主站蜘蛛池模板: 卷筒电缆-拖链电缆-特种柔性扁平电缆定制厂家「上海缆胜」 | 武汉高温老化房,恒温恒湿试验箱,冷热冲击试验箱-武汉安德信检测设备有限公司 | 海外整合营销-独立站营销-社交媒体运营_广州甲壳虫跨境网络服务 焊管生产线_焊管机组_轧辊模具_焊管设备_焊管设备厂家_石家庄翔昱机械 | 光栅尺_Magnescale探规_磁栅尺_笔式位移传感器_苏州德美达 | 贴片电容代理-三星电容-村田电容-风华电容-国巨电容-深圳市昂洋科技有限公司 | 耐热钢-耐磨钢-山东聚金合金钢铸造有限公司 | 产业规划_产业园区规划-产业投资选址及规划招商托管一体化服务商-中机院产业园区规划网 | 商用绞肉机-熟肉切片机-冻肉切丁机-猪肉开条机 - 广州市正盈机械设备有限公司 | 烟雾净化器-滤筒除尘器-防爆除尘器-除尘器厂家-东莞执信环保科技有限公司 | 自动部分收集器,进口无油隔膜真空泵,SPME固相微萃取头-上海楚定分析仪器有限公司 | 比士亚-专业恒温恒湿酒窖,酒柜,雪茄柜的设计定制 | 万濠投影仪_瑞士TRIMOS高度仪_尼康投影仪V12BDC|量子仪器 | 桑茶-七彩贝壳桑叶茶 长寿茶 | 消电检公司,消电检价格,北京消电检报告-北京设施检测公司-亿杰(北京)消防工程有限公司 | 沈阳网站建设_沈阳网站制作_沈阳网页设计-做网站就找示剑新零售 沈阳缠绕膜价格_沈阳拉伸膜厂家_沈阳缠绕膜厂家直销 | 润东方环保空调,冷风机,厂房车间降温设备-20年深圳环保空调生产厂家 | 防水套管_柔性防水套管_刚性防水套管-巩义市润达管道设备制造有限公司 | 无压烧结银_有压烧结银_导电银胶_导电油墨_导电胶-善仁(浙江)新材料 | 众品地板网-地板品牌招商_地板装修设计_地板门户的首选网络媒体。 | 工控机-工业平板电脑-研华工控机-研越无风扇嵌入式box工控机 | 精密线材测试仪-电线电缆检测仪-苏州欣硕电子科技有限公司 | 半容积式换热器_北京浮动盘管换热器厂家|北京亿丰上达 | 工业电炉,台车式电炉_厂家-淄博申华工业电炉有限公司 | 十字轴_十字轴万向节_十字轴总成-南京万传机械有限公司 | ALC墙板_ALC轻质隔墙板_隔音防火墙板_轻质隔墙材料-湖北博悦佳 | 家用净水器代理批发加盟_净水机招商代理_全屋净水器定制品牌_【劳伦斯官网】 | 「钾冰晶石」氟铝酸钾_冰晶石_氟铝酸钠「价格用途」-亚铝氟化物厂家 | 透平油真空滤油机-变压器油板框滤油机-滤油车-华之源过滤设备 | 东莞市超赞电子科技有限公司 全系列直插/贴片铝电解电容,电解电容,电容器 | 企业微信营销_企业微信服务商_私域流量运营_艾客SCRM官网 | 代做标书-代写标书-专业标书文件编辑-「深圳卓越创兴公司」 | 塑料瓶罐_食品塑料瓶_保健品塑料瓶_调味品塑料瓶–东莞市富慷塑料制品有限公司 | 压力控制器,差压控制器,温度控制器,防爆压力控制器,防爆温度控制器,防爆差压控制器-常州天利智能控制股份有限公司 | 工装定制/做厂家/公司_工装订做/制价格/费用-北京圣达信工装 | 通用磨耗试验机-QUV耐候试验机|久宏实业百科 | 辐射色度计-字符亮度测试-反射式膜厚仪-苏州瑞格谱光电科技有限公司 | 金属管浮子流量计_金属转子流量计厂家-淮安润中仪表科技有限公司 | 扬尘监测_扬尘监测系统_带证扬尘监测设备 - 郑州港迪科技有限公司 | ★塑料拖链__工程拖链__电缆拖链__钢制拖链 - 【上海闵彬】 | PCB厂|线路板厂|深圳线路板厂|软硬结合板厂|电路板生产厂家|线路板|深圳电路板厂家|铝基板厂家|深联电路-专业生产PCB研发制造 | 施工围挡-施工PVC围挡-工程围挡-深圳市旭东钢构技术开发有限公司 |