原创 SQL優化 第十二章 子查詢提升

※本章節概念解釋引用參考《數據庫系統實現 第2版》 12.1 子查詢提升概念解釋 首先,我們得解釋什麼是子查詢提升 優化器會我們寫的SQL會構建一個查詢樹,如下: select movieTitle from StarsIn where

原创 Filter消除-20190928-01

1 數據準備 drop table test1; drop table test2; create table test1 as select * from dba_objects; create table test2 as selec

原创 關聯表更新Merge優化

昨天,有一位美女提出瞭如下需求,週末沒事,在家裏好好查了一下。 1 需求分析 有三張表,商品表(TBLITEM),庫存表(TBLSTORAGE),庫存管理表(TBLMANAGEMENT); 每一種商品對應的處理區分是0,並且庫存總量大於1

原创 分析函數改善自連接-20191006-01

1 數據準備 drop table test1; create table test1 as select * from dba_objects where rownum<10000; alter table test1 add cons

原创 Filter消除-20190929-03

1 數據準備 CREATE TABLE TEST1 AS SELECT D.* ,trunc(dbms_random.value(0,100)) AS RAN_VAL FROM DBA_OBJECTS D; 2 性能改善 2.1 寫法一

原创 Having轉Not Exists優化

Having如果相關查詢,有時候會產生Filter,下面我們看看轉換方法。 1.數據準備 DROP table Student; CREATE TABLE Student (StuName VARCHAR2(10) NOT NULL,  

原创 PLSQL管道表函數和其他寫法比較

本文是學習筆記,沒有太多說明,請自行參考   create table T_SS_NORMAL (   owner          VARCHAR2(30),   object_name    VARCHAR2(128),   subo

原创 用分析函數代替Having

在支持分析函數的數據中,建議用分析函數代替Having查詢 1.數據準備: create table student(name char(50),subject char(50),score int,classid int); inser

原创 裝拆箱和強制類型轉換

記得在學C#基礎時,有個疑問,值類型和引用類型進行隱式類型轉換會造成裝拆箱,但是用強制類型轉換,有時候會避免裝拆箱,一直不明白爲什麼,首先我們先看案例: 我們再看編譯後的IL代碼: 可以看出,隱式轉換確實造成了裝拆箱,ToString

原创 強制類型轉換、is、as

學習C#基礎時的疑問,強制類型轉換和as轉換到底什麼區別和聯繫。 首先,類型轉換分爲兩大類: 1.依靠轉換操作符完成類型之間的轉換; 2.類型存在繼承關係。 我們看一下代碼案例: class Program {

原创 SQL優化 第十章 Filter連接那點事

參考資料: 本系列博客主要參考資料有CUUG冉乃綱老師數據庫教學筆記,《SQL優化核心思想》(羅炳森,黃超,鍾僥著),《PostgreSQL技術內幕:查詢優化深度探索》(張樹傑著),排名不分先後。 雖然Filter連接大部分時間不太討喜,

原创 分析函數改善自連接

下面我們看一下各種求中間值的寫法及性能比較。 1.數據準備 DROP table Student; CREATE TABLE Student (StuName VARCHAR2(10) NOT NULL,  Subject VARCHAR

原创 關聯更新建議用merge

本章節執行計劃請自行採集。 1.數據準備 drop table test1; drop table test2; create table test1 as select * from dba_objects; create table

原创 C#反射之深拷貝+泛型擴展

在另一篇博客裏寫了反射技術提高代碼複用率問題,這裏我們看另一個場景,那就是反射實現對象深拷貝。 普通版本的深拷貝我們就先不寫了,先上反射版本的。 main處理: using System; namespace ConsoleApp1

原创 Python併發處理比較-歡迎拍磚篇

實驗前提:建立test1.txt~test120.txt,120個文檔,每個文件大約4M。 實驗環境:CPU四核八線程,OS Win10 1 單進程單線程處理 # -*- coding:utf-8 -*- import os import