最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

postgres 使用存儲(chǔ)過程批量插入數(shù)據(jù)的操作

 更新時(shí)間:2021年02月02日 09:34:29   作者:NGForever  
這篇文章主要介紹了postgres 使用存儲(chǔ)過程批量插入數(shù)據(jù)的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

參考官方文檔

create or replace function creatData2() returns 
boolean AS
$BODY$
declare ii integer;
 begin
 II:=1;
 FOR ii IN 1..10000000 LOOP
 INSERT INTO ipm_model_history_data (res_model, res_id) VALUES (116, ii);
 end loop;
 return true;
 end;
$BODY$
LANGUAGE plpgsql;
select * from creatData2() as tab;

插入1千萬條數(shù)據(jù)耗時(shí)610s,當(dāng)然字段不多的情況下。

補(bǔ)充:Postgresql存儲(chǔ)過程--更新或者插入數(shù)據(jù)

要記錄某一時(shí)段機(jī)器CPU、內(nèi)存、硬盤的信息,展示的時(shí)間粒度為分鐘,但是為了精確,輸入數(shù)據(jù)源的時(shí)間粒度為6s。這個(gè)統(tǒng)計(jì)過程可以在應(yīng)用層做好,每分鐘插入一次,也可以在數(shù)據(jù)庫層寫個(gè)存儲(chǔ)過程來完成,根據(jù)傳入數(shù)據(jù)的時(shí)間來判斷是更新數(shù)據(jù)庫舊數(shù)據(jù)還是插入新數(shù)據(jù)。

同時(shí),這些數(shù)據(jù)只需要保留一周,更老的數(shù)據(jù)需要被刪除。刪除動(dòng)作可以每天定時(shí)執(zhí)行一次,也可以寫在存儲(chǔ)過程中每次檢查一下。

考慮到性能在此時(shí)沒什么太大約束,而后面存儲(chǔ)過程的接口方式更漂亮些,不用應(yīng)用層去關(guān)心數(shù)據(jù)到底組織成什么樣,因此實(shí)現(xiàn)了一個(gè)如下:

Postgresql V8.3
CREATE OR REPLACE FUNCTION insert_host_status(_log_date timestamp without time zone, _host inet, _cpu integer, _mem integer, _disk integer)
 RETURNS void AS
$BODY$
DECLARE
  new_start timestamp without time zone;
  current_start timestamp without time zone;
  c_id integer;
  c_log_date timestamp without time zone;
  c_cpu integer;
  c_mem integer;
  c_disk integer;
  c_count integer;
  date_span interval;
BEGIN
  -- insert or update
  SELECT id, log_date, cpu, mem, disk, count INTO c_id, c_log_date, c_cpu, c_mem, c_disk, c_count FROM host_status_byminute WHERE host=_host ORDER BY id DESC limit 1;
  SELECT timestamp_mi(_log_date, c_log_date) INTO date_span;
  IF date_span >= '00:00:60' OR c_id IS NULL THEN
    INSERT INTO host_status_byminute (log_date, host, cpu, mem, disk, count) values (_log_date, _host, _cpu, _mem, _disk, 1);
  ELSIF date_span >= '-00:00:60' THEN
    c_mem := ((c_mem * c_count) + _mem)/(c_count + 1);
    c_cpu := ((c_cpu * c_count) + _cpu)/(c_count + 1);
    c_disk := ((c_disk * c_count) + _disk)/(c_count + 1);
    c_count := c_count + 1;
    UPDATE host_status_byminute SET mem=c_mem, cpu=c_cpu, disk=c_disk, count=c_count WHERE id=c_id;
  END IF;
  -- delete old data
  SELECT date_mii(date(now()), 6) INTO new_start;
  SELECT date(log_date) from host_status_byminute limit 1 INTO current_start; -- omit a bug happened when date is disordered.
  IF new_start > current_start THEN
    DELETE FROM host_status_byminute where log_date < new_start;
  END IF;
END;
$BODY$
 LANGUAGE 'plpgsql' VOLATILE
 COST 100;
ALTER FUNCTION insert_host_status(timestamp without time zone, inet, integer, integer, integer) OWNER TO dbuser_test;

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

相關(guān)文章

  • PostgreSQL如何查看數(shù)據(jù)庫及表中數(shù)據(jù)占用空間大小詳解

    PostgreSQL如何查看數(shù)據(jù)庫及表中數(shù)據(jù)占用空間大小詳解

    這篇文章主要介紹了PostgreSQL中用于查看數(shù)據(jù)庫和表空間大小的函數(shù),并提供了每個(gè)函數(shù)的詳細(xì)說明和應(yīng)用場景,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-02-02
  • 解決postgresql 序列跳值的問題

    解決postgresql 序列跳值的問題

    這篇文章主要介紹了解決postgresql 序列跳值的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • Postgresql 如何選擇正確的關(guān)閉模式

    Postgresql 如何選擇正確的關(guān)閉模式

    這篇文章主要介紹了Postgresl 如何選擇正確的關(guān)閉模式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • PostgreSQL 數(shù)據(jù)同步到ES 搭建操作

    PostgreSQL 數(shù)據(jù)同步到ES 搭建操作

    這篇文章主要介紹了PostgreSQL 數(shù)據(jù)同步到ES 搭建操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • PostgreSQL中的日期/時(shí)間函數(shù)詳解

    PostgreSQL中的日期/時(shí)間函數(shù)詳解

    這篇文章主要給大家介紹了關(guān)于PostgreSQL中日期/時(shí)間函數(shù)的相關(guān)資料,文章通過實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2022-01-01
  • postgresql安裝及配置超詳細(xì)教程

    postgresql安裝及配置超詳細(xì)教程

    這篇文章主要介紹了postgresql安裝及配置超詳細(xì)教程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • PostgreSQL數(shù)據(jù)庫中如何保證LIKE語句的效率(推薦)

    PostgreSQL數(shù)據(jù)庫中如何保證LIKE語句的效率(推薦)

    這篇文章主要介紹了PostgreSQL數(shù)據(jù)庫中如何保證LIKE語句的效率,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • PostgreSQL使用JSONB存儲(chǔ)和查詢復(fù)雜的數(shù)據(jù)結(jié)構(gòu)

    PostgreSQL使用JSONB存儲(chǔ)和查詢復(fù)雜的數(shù)據(jù)結(jié)構(gòu)

    在PostgreSQL中,JSONB是一種二進(jìn)制格式的JSON數(shù)據(jù)類型,它允許你在數(shù)據(jù)庫中存儲(chǔ)和查詢復(fù)雜的JSON數(shù)據(jù)結(jié)構(gòu),本文給大家介紹了如何使用JSONB類型在PostgreSQL中存儲(chǔ)和查詢復(fù)雜的數(shù)據(jù)結(jié)構(gòu),需要的朋友可以參考下
    2024-04-04
  • PostgreSql從庫重新配置的詳情

    PostgreSql從庫重新配置的詳情

    這篇文章主要介紹了PostgreSql從庫重新配置的詳情,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12
  • PostgreSQL設(shè)置主鍵從1開始自增的詳細(xì)步驟

    PostgreSQL設(shè)置主鍵從1開始自增的詳細(xì)步驟

    和MySQL不同,在 PostgreSQL 中,設(shè)置主鍵從1開始自增并重新開始自增是通過序列(sequence)來實(shí)現(xiàn)的,本文給大家分享PostgreSQL設(shè)置主鍵從1開始自增的詳細(xì)步驟,感興趣的朋友一起看看吧
    2023-11-11

最新評(píng)論

绥芬河市| 罗山县| 蓬莱市| 长岛县| 小金县| 江阴市| 黄浦区| 丹东市| 五寨县| 迭部县| 白山市| 保亭| 镇康县| 晋州市| 潞西市| 昌平区| 台南县| 嵩明县| 黄石市| 泗洪县| 揭西县| 忻州市| 北碚区| 阳城县| 伊川县| 年辖:市辖区| 武隆县| 河东区| 吉林省| 东莞市| 堆龙德庆县| 贵定县| 朝阳县| 肇源县| 绥阳县| 故城县| 衡水市| 满洲里市| 张家界市| 赤水市| 祁东县|