當create table as select 遇上大數據

統計24小時的紅包感知專題,有1.5億行以上的數據,Nokia給出的方法是先按小時執行算法,再匯總各個小時的執行結果。

算法中包含了大量的 sum(case when)計算。

專題里有5個小節,執行計劃的時候,需要跑5次where條件不同而查詢列相同的sql,需要執行5次sum(case when),很耗時間。

統計一天24小時的數據,需要9個多小時才能計算完成。

--------------于是我想優化這個執行過程--------

我把每小時的數據case when的計算先執行,合并24小時各小時的case when 結果,然后再對合并的執行sum等計算。

發現select時速度很快,sum速度也快,5個小節,執行計劃時只要執行一次case when,5次sum,按理速度應該會提高很大。

--------------沒想到,現實不是這樣的,居然還原來的快----------

找原因,發現問題在 create table xxxx as select 的性能問題

原來的方法雖然執行了5次sum(case when),很耗時間,但因為匯總了數據,create table 的表行數少,創建表的速度快。

-------------

優化后的方法,雖然select速度很快,但是創建表的行太多,24小時有1.5億行+,這個表好大啊,create table xxxx as ?select 的執行耗時比上面的還要多。

于是我醉了,2天的優化,白弄了。大哭大哭大哭大哭大哭


--------下文是create table as select 性能優化方法------

http://blog.csdn.net/yangzhijun_cau/article/details/7396088


可專題工具系統在代碼里硬編碼了create table as select 的語句,不能加入優化方法里的參數,優化的方法用不上。



本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/539757.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/539757.shtml
英文地址,請注明出處:http://en.pswp.cn/news/539757.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

mybatis源碼分析(方法調用過程)

十一月月底,宿舍樓失火啦,搞得20多天沒有網,目測直到放假也不會來了。。。 正題 嗯~,其實閱讀源碼不是為了應付面試,更重要的讓你知道,大師是怎樣去寫代碼的,同樣是用Java,為啥Clint…

提取多個字段_動態合并多個工作表,數據再多也不怕

小伙伴們好啊,今天老祝和大家分享一個動態合并多個工作表的技巧。很多時候,咱們的數據是按照部門或是月份等項目,分別存放在不同工作表中的,要對這些數據進行分析匯總的時候,需要先將不同工作表中的數據合并到一起才可…

深入理解Oracle的并行操作【好文認真讀】

請尊重原文作者,http://czmmiao.iteye.com/blog/1487568 -------------------------------------------------------------------------------- 并行(Parallel)和OLAP系統 并行的實現機制是:首先,Oracle會創建一個進…

服務器虛擬化性能瓶頸怎么辦,如何突破虛擬化三大瓶頸

如果你希望在應用虛擬化技術的過程中不出現任何問題的話,那么顯然這是不切合實際的期望。虛擬化技術能給你的數據中心帶來諸多好處,但是為了可以利用虛擬化的優勢,你需要了解可能會面對哪些問題。即使虛擬化技術已經被應用到了許多企業中&…

2017-2018-1 20155229 《信息安全系統設計基礎》第十四周學習總結

2017-2018-1 20155229 《信息安全系統設計基礎》第十四周學習總結 對“第三章 程序機器級表示”的深入學習 我選擇這章的理由是第一次學的時候還是不太理解,老師也有說這章建議在認真學習,所以本周的學習任務是認真再次學習這一章c語言、匯編代碼以及機器…

python中為什么推薦使用with_Python中的with關鍵字使用詳解

這篇文章主要介紹了Python 中的with關鍵字使用詳解的相關資料,在Python中,with關鍵字是一個替你管理實現上下文協議對象的好東西,需要的朋友可以參考下">在 Python 2.5 中, with 關鍵字被加入。它將常用的 try ... except ... finally ... 模式很方便的被復…

create table as select性能測試

轉載自:http://blog.csdn.net/yangzhijun_cau/article/details/7396088 --------------------------------------------------------------------------------- 原表270W數據,無照片,字段比較多,有50個左右 測試機是一個虛擬機&a…

類似索引Model套Model之 iOS模型閑聊二

看下界面, 這是類似于索引的頁面, 只不過木有右側索引條的布局. 如果想了解通訊錄索引的,請移步iOS - 高仿通訊錄之商品索引排序搜索. 提供思路如下: 分析界面及接口用 MVC 設計模式來實現(其實核心點都在下面5)創建內外層 Model 并綁定兩者 Model兩者 Cell 布局的實現 (便于后…

輸入法畫面_搜狗輸入法:用AI技術譜寫詩意生活

十九世紀著名的思想家斯賓塞曾說:科學本身就富有詩意。這里應該包含兩種意思,字面上,科學是飽含文字之美的,比如原理和規律的推演,僅通過文字符號的簡單排列,便有了生機。但深層次上科學又不止于文字&#…

hadoop偽分布式(單機版)安裝,Linux

一、下載 1、hadoop官網下載:https://archive.apache.org/dist/hadoop/common/ 進入stable文件夾里下載,這是穩定版本。 stable/ 本文的版本是 hadoop-2.7.2.tar.gz 2、jdk下載,JDK7及以上,本文用jdk8-64位 二、版本區別 2.…

c++-add two numbers 兩個鏈表相加

題目描述 You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linked list. Input: (2 -> 4 -> 3) (5 -> 6…

城軌的兩類時鐘系統均同步于_基于兩臺SDS3000示波器同步產生“8通道”示波器...

在很多應用場合需要4通道以上的示波器,但是市面上極大部分示波器最多只有四通道,而且沒有外部輸入的同步時鐘接口。 有什么快捷的方法獲得更多通道功能的示波器? 最簡便的方法是:將兩臺示波器的輔助輸入信號作為觸發源,同時連接到…

Linux設置ssh免密碼登錄

一、SSH來源 對于需要遠程管理其它機器,一般使用遠程桌面或者telnet。linux一般只能是telnet。但是telnet的缺點是通信不加密,存在不安全因素,只適合內網訪問。 為解決這個問題,推出了通信加密通信協議,即SSH&#x…

解析json數據_Retrofit同時解析JSON和XML數據格式

前言Android開發中,我們會經常遇到前端需要解析兩種數據格式(json和xml),比如自己服務器返回的是json格式的數據,我們做微信登錄的時候,微信返回的格式又是xml格式的。我們可以通過自己編寫Retrofit的ConverterFactory來做到可以同時解析兩種…

ORACLE 小時值必須介于1和12之間 解決方法

ORACLE數據庫查詢語句: "select * from dual where time>to_date(2012-10-29 19:45:34,yyyy-mm-dd HH:mi:ss)"當執行時,會拋出錯誤:ORA-01849: 小時值必須介于 1 和 12 之間 01849. 00000 - "hour must be between 1 and 1…

jenkins+svn+maven+ssh 部署配置詳細記錄

2019獨角獸企業重金招聘Python工程師標準>>> 先簡單記錄一下,后面再慢慢完善。 1、環境 jdk 1.7.0_45 maven 3.1.1 jenkins 2.3.21 jdk和maven的安裝就不必多說了,主要是jenkins的安裝需要說下,jenkins有war包和yum還有rpm等安裝方…

k8s安裝sqlite3_kubernetes環境部署單節點redis數據庫的方法

kubernetes部署redis數據庫(單節點)redis簡介Redis 是我們常用的非關系型數據庫,在項目開發、測試、部署到生成環境時,經常需要部署一套 Redis 來對數據進行緩存。這里介紹下如何在 Kubernetes 環境中部署用于開發、測試的環境的 Redis 數據庫&#xff0…

oracle 都是parallel惹的禍【1-2分鐘出結果變1-2秒】

原文:http://blog.csdn.net/shushugood/article/details/9000628 -------------------------------------------------------- 該項目是中國聯通xxxx話務系統,我的架構設計需求設計,運維保障數據庫開發,全套服務。 在今天開發完畢…

二叉搜索樹(BST樹)的簡單實現

#include <stdlib.h>template<typename T>class CBinSTree;template <typename T>class CTreeNode{//樹節點類public:CTreeNode(const T& item,CTreeNode<T>* lptr NULL,CTreeNode<T>* rptr NULL):data(item),left(lptr),right(rptr){}CTr…

Oracle 創建 DBLink 的方法

原文出處&#xff1a;http://blog.csdn.net/davidhsing/article/details/6408770 ------------------- 1、如果需要創建全局 DBLink&#xff0c;則需要先確定用戶有創建 dblink 的權限&#xff1a; [c-sharp] view plaincopy print?select * from user_sys_privs where privi…