Oracle 執行Create Table很慢的一次案例

同事今天要建立一個新的table時,sql大致如下:
create table temp_01_200 as (
  select we.WIP_ENTITY_NAME,msi.SEGMENT1 item_no,msi.DESCRIPTION,wdj.SCHEDULED_COMPLETION_DATE start_date,
              wdj.START_QUANTITY,wdj.QUANTITY_COMPLETED qty
    from wip_discrete_jobs wdj,
              mtl_system_items msi,
               wip_entities we,
              WIP_OPERATIONS_V wo,
     ...(略)
    
以Toad來執行時間非常的久,過了15分鐘還沒有完成。
但是單獨執行Select的SQL語法卻不到1秒就出來了,而且筆數只有200筆。

所以我重新執行一次Create Table,並找出執行計畫,發現Buffer Sort有Full Scan Table的情況


檢查WIP_OPERATIONS_V的SQL語法,發現這個View有使用order by語法。

... (略)
FROM BOM_DEPARTMENTS BD,
            BOM_STANDARD_OPERATIONS BSO,
            WIP_OPERATIONS WO,
            MFG_LOOKUPS LU1
      WHERE     BD.DEPARTMENT_ID = WO.DEPARTMENT_ID
            AND BSO.STANDARD_OPERATION_ID(+) = WO.STANDARD_OPERATION_ID
            AND NVL (BSO.OPERATION_TYPE, 1) = 1
            AND BSO.LINE_ID IS NULL
            AND LU1.LOOKUP_TYPE(+) = 'BOM_EAM_SHUTDOWN_TYPE'
            AND LU1.LOOKUP_CODE(+) = WO.SHUTDOWN_TYPE
   ORDER BY WO.OPERATION_SEQ_NUM;
 
於是改寫Create Table語法,直接以SQL取代View,並將order by刪掉,重新執行Create Table很快就完成了

Sublime Text 3 無法開啟Corona SDK Debug

我用Sublime Text 3 來撰寫Corona SDK,
在點選「Corona Editor」 -> 「Corona Debugger」 -> 「Run \ 後,出現錯誤的視窗:



選擇「Preferences」 -> 「Settings - User」


將下列的字串加入就可以了,注意要用多一個「\」跳脫字元。
"corona_sdk_simulator_path": "C:\\Program Files (x86)\\Corona SDK\\Corona Simulator.exe"

例如:
{
"color_scheme": "Packages/Color Scheme - Default/Eiffel.tmTheme",
"font_size": 12,
"corona_sdk_simulator_path": "C:\\Program Files (x86)\\Corona Labs\\Corona SDK\\Corona Simulator.exe",
"ignored_packages":
[
"Vintage"
]
}

自來水公司電子帳單

自來水公司目前有一個電子帳單的活動如下:
(一)「帳單e化用戶享折扣」:用戶申辦(含已申辦)電子帳單不寄紙本帳單者,於105年12月底止,依水費實際開單日期,對於代繳用戶每期水費給予減收水費5元之優惠,非代繳用戶每期水費給予減收水費3元之優惠。

因為現在有e化推廣的活動,如果您正想申請電子帳單也願意讓我積分的話,請以下列的網址進入申請:
http://bit.ly/1wzKIlw

如果您對上述的網址有疑慮,也沒有關係,可以直接到「台灣自來水公司」的電子帳單申請


電子帳單就是將紙本帳單改以mail寄發,節省紙本的浪費及縮短通知的時間,現在人電腦、手機不離身,mail也幾乎是每天必定閱讀的工作。

而且手機還可以下載「行動比爾」APP,直接以手機產生繳費的條碼,只要到超商就可以繳費,完全不用擔心忘了帶繳費單。

我自己就有使用「行動比爾」,只要手機有連線網路,有未繳費的水費會自動提示,並且直接產生條碼,
把手機畫面的條碼讓超商的工讀生以紅外線掃描就可以了,還可以把繳費的收據拍下來,
也不怕收據弄丟了,只是有些工讀生會有懷疑的眼光,但是掃描後他們就知道接下來要如何處理了。

行動比爾APP的下載及第一次需要登錄、認證、使用方法在下列網址都有詳細的說明:
http://www.mobilebill.com.tw/WebSite/guide.php


申請電子帳單的第一步就是先申請會員帳號(如已申請可以跳過此步驟):

輸入個人資料,有「*」表示資料必填,加入會員可以順便啟用電子帳單,如下圖:
特別要注意的是電子郵件這個欄位,儘量不要以任職公司給您的mail做為郵件帳號,
因為此mail帳號同時也是會員帳號,萬一到另一家公司任職時,很容易就會忘了原本的mail帳號,
而且也會您的mail帳號一定會被原公司給取消的。

在上一畫面如果有按下「訂閱電子帳單」,會出現下列欄位,水號的設定可以參考最新一期的繳費單。
「pdf電子帳單加密」指的是當帳單以pdf寄到我們的mail時,是否需要密碼才能打開pdf,建議選擇「是」

如果原本就已有帳號或申請時沒有勾選「訂閱電子帳單」時,也可以在登入後選擇「新增電子帳單」

水號的部份一樣可以參考繳費單,也可以設定多組的水號,統一以一個帳號管理。

一旦會員申請並認證成功之後,就可以在「我的帳單」中查詢以前的水費資料、補寄或下載帳單。

下圖是「用水圖表分析」的範例,可以知道自己用水的分佈圖。

下圖是電子報的訂閱,可依自已有興趣的區域訂閱停水、施工等訊息,尤其是停水的資訊我們比較關注。



   下面是行動比爾的主畫面

很方便知道每月的水費的明細、繳費狀態、以及當月的收據(如果有拍照的話)



Corona SDK 背景圖片自動縮放到整個螢幕

1、修改config.lua的設定值:scale = "letterbox"

2、main.lua的程式如下:
local sceenX = display.contentWidth - (display.screenOriginX * 2)
local screenY = display.contentHeight - (display.screenOriginY * 2)

local image = display.newImageRect("image_bg.png", xMax-xMin, yMax-yMin)
image.x = centerX
image.y = centerY



Corona SDK 離開程式的函數

練習Corona SDK時剛好有需要寫一個離開程式的按鈕,把找到的程式範例記錄下來。

local function ButtonExit_Handle()
  --判斷是否為Android或iOS
  if  system.getInfo("platformName")=="Android" then
    native.requestExit()
  else
    os.exit()
  end
end

FNDCPASS 變更apps密碼時出現錯誤

還原ERP測試環境,要變更apps的密碼時,出現了錯誤。

bash-3.2$ FNDCPASS apps/XXXXX 0 Y system/XXXXX SYSTEM APPLSYS XXXXX
ld.so.1: FNDCPASS: fatal: libclntsh.so.1.0: open failed: No such file or directory Killed

這是因為環境變數沒有執行或錯誤的環境變數,檢查$AU_TOP、$ORACLE_HOME
$ echo $AU_TOP
/erpdr/AP/testappl/au/11.5.0
$ echo $ORACLE_HOME
[空的]

因為$ORACLE_HOME沒有值,所以無法成功執行FNDCPASS的指令

重新執行AP的環境變數
$ . /erpdr/AP/testappl/APPS<SID>_<HOST_NAME>.env

重新執行變更apps密碼,這次就成功了。
bash-3.2$ FNDCPASS apps/XXXXX 0 Y system/XXXXX SYSTEM APPLSYS XXXXX
Log filename    : L3447789.log
Report filename : O3447789.out

如果出現下列的錯誤,是因為DB及Listener沒有開啟的緣故
bash-3.2$ FNDCPASS apps/XXXXX 0 Y system/XXXXX SYSTEM APPLSYS XXXXX
APP-FND-01564: ORACLE error 12224 in AFPCOA
Cause:  AFPCOA failed due to ORA-12224: TNS:no listener
The SQL statement being executed at the time of the error was:  and was executed from the file .

Google Web Designer 免費視覺化HTML5設計工具

這是Google為了快速製作HTML5廣告而推出的一套免費網頁設計工具,支援Mobile的Touch事件。

Google Web Designer可以使用繪圖工具、文字和 3D 物件來建立內容,套用時間軸設定,將各種物件和事件以動畫方式呈現,
它會自動把畫面的內容及動畫轉成HTML5、CSS3 和 JavaScript。

因為Google Web Designer的核心是HTML5,所以不必像Flash需要安裝特別的元件才能顯示,當然功能上目前仍無法與Flash相比。

官網及下載網址:http://www.google.com/webdesigner/

下圖是新增的畫面,可以直接選擇不同類型的廣告格式,但是也可以設計HTML5的內容。

Google Web Designer有時間軸、3D物件、2D物件、顏色選擇等功能


用貝茲曲線製作的愛心


其他繪圖工具建立的物件

程式碼檢視

Mobile裝置的touch事件

Google Web Designer的檔案就是HTML5、Javascript、CSS

Google Web Designer目前還是測試版,相信未來會有更多的功能加入。


Oracle 11g 使用shrink來自動縮小Temporary Tablespace的空間

在Oracle 9i時,要縮小Temporary Tablespace的空間時,都是新增一個新的Temporary Datafile,
再將原有的Temporary Datafile離線後刪除,但是現在資料庫已經更新到11gR2的版本。

藉著這次RMAN異機還原的測試,順便測試shrink的功能。

由下列的檢查發現大約25GB的Temporary,只有使用了約600MB的大小。
SQL> select * from dba_temp_free_space;

TABLESPACE_NAME      TABLESPACE_SIZE   ALLOCATED_SPACE   FREE_SPACE
------------------   ---------------   ---------------   ----------
TEMP02               2.5801E+10        616562688         2.5795E+10

直接執行下列的SQL
SQL> alter tablespace temp02 shrink space;

Tablespace altered.

重新查詢,發現Tablespace_size已經變成12MB,使用率在重整後實際只有使用6MB
SQL> select * from dba_temp_free_space;

TABLESPACE_NAME        TABLESPACE_SIZE  ALLOCATED_SPACE  FREE_SPACE
--------------------   ---------------  ---------------  ----------
TEMP02                 12533760         6242304          6291456


雖然Temporary Tablespace只有12MB,但是加大空間比縮小簡單多了,
不過有了shrink,縮小Temporary Tablespaces也就變得簡單,也不必重開資料庫。

用紅米機體驗Google Cardboard 3D虛擬實境

上星期看到Google Cardboard 簡易式3D眼鏡,覺得很有趣,只要厚紙版、磁石、焦距45mm凸透鏡等材料,
再配合Google Play內的Cardboard APP,就可以體驗3D VR的世界了。
下載完Cardboard APP後,內有一個Demo可以體驗,也可以再下載其他的APP來體驗,只是目前APP數量非常少。



Google有為Cardboard開設一個網站,可以直接列印樣版,自行切割,網址如下:
https://developers.google.com/cardboard/



裡面比較麻煩的就是透鏡的取得,放大鏡就是凸透鏡的一種,所以我本來想買放大鏡來試試看,
但是書店賣的放大鏡價格沒有比直接買套件來的便宜許多,所以我就直接到網拍上花了150(含運費)元買一組。

下圖是今天送來的套件,材料十分簡單,組裝也非常簡單,可以參考Youtube的影片:
http://youtu.be/Snnj3N-2P9Y  (語言聽不懂沒有關係,只要看影片就好了)


下面的圖是我自己組裝好的成品,有用白膠固定,所以有些地方白白的或髒髒的。





接著當然是把紅米機直接放到眼鏡內測試,結果出乎意料,沒想到真的變成虛擬實境了,
我把頭上下左右轉,實境的景色也會跟著改變,就像人在現場一樣,沒想到虛擬實境是這麼好玩。
而磁石的部份是當做確認鍵使用,只要向下移動磁石就可以觸發程式的事件。
不過我買的套件磁石磁力可能太弱了或是我的紅米機感應不夠靈敏,老是無法觸發成功,
索性把之前買來玩的磁鐵也加上去,並且把磁鐵直接拿出來大幅度擺動,這才成功觸發。
因為我買的套件是賣家加大的尺寸,所以我戴眼鏡還是可以看,不過拿掉眼鏡,會更有真實感。

2014/12/24:
我找到一顆強力磁鐵,取代外面的磁鐵,只要正常擺動,就可以正常觸發確認動作。

下圖是虛擬實境APP的畫面,想當然是分為左右兩個有些微差異的圖,這樣眼睛看起來才會變成立體的。





Firefox、Chrome安裝中華郵政(郵局)網路ATM元件

我的作業環境:
作業系統:Win 8.1 x64
Firefox 版本:34.0.5 x64
Chrome版本:39.0.2171.95 x64

中華郵政自103年12月9日起,「網路ATM」新增支援Google Chrome及FireFox等多瀏覽器,
終於不必切換到IE下執行網路ATM了,不過實際安裝後,有部份需要注意的事項,
我在安裝說明中沒有看到,只說明安裝了plugin就可以使用,所以我自己記錄下來,
也許發生問題時,可以知道往哪一個方向解決。

Firefox、Chrome的ATM plugin必須手動安裝,第一次未安裝時會出現需要安裝的畫面,
或者直接到下圖紅色框選處下載元件。


 選擇「2.WebATM元件下載-Firefox/Googoe Chrome/Opera」


 把「npTRUSTATMPOST-setup.msi」下載到電腦上並安裝它(一直按下一步就可以了)


把上述的元件安裝完成後,最好將電腦重新開機,以免有些奇怪的問題出現。
原則上只要重開機後就可以正常使用了,但是如果還是出現需要下載元件的視窗時,
則必須檢查看看設定值是否有問題。


開啟Chrome瀏覽器後,點選右上角有三條橫線的圖示,出現下拉選單後選擇「設定」

在「設定」的視窗中,選擇「顯示進階設定」,開啟更多的設定選項。

進階設定的選項出現後,找到「隱私權」並按下「內容設定」


找到「外掛程式」,並點選「管理例外情況」,也檢查一下是否選擇「自動執行(建議)」

在「管理例外情況」中找到下列紅框的網址,檢查行為是否為「允許」


如果是Firefox,一樣點選右上角有三條橫線的圖示,出現下拉選單後選擇「附加元件」

點選「外掛程式」並且找到「POST WebATM 1.1.1.39」,檢是是否為「啟用時詢問」或「總是啟用」



ezgo--教育部推廣的Linux免費作業系統與自由軟體

這是由「教育部校園自由軟體數位資源推廣服務中心」所推出的免費Linux作業系統,
ezgo是以Kubuntu 的 Linux 作業系統為基礎所開發的作業系統,完全支援繁體中文。
ezgo著重在自由軟體的推廣與使用,因此收錄了許多自由軟體和200多個動畫模擬教學範例,
並且已經幫我們分類成辦公、美工、影音、網路、教育、遊戲...等類別。
另外ezgo還可以透過「Muon軟體中心」或「Muon套件管理員」的軟體套件工具,
方便我們來新增更多的自由軟體來使用。
官網:http://ezgo.westart.tw/


而且ezgo的網站還幫我們建置了雲端的ezgo作業系統,可以直接以瀏覽器試用ezgo作業系統,
不必額外花費時間來自行建置測試系統,只要到ezgo的首頁,選擇「雲端體驗」,
再選擇無人登入的虛擬機就可以完整體驗了,連註冊都不用,真是超簡單。



下面是我在「雲端體驗」中擷取的部份畫面,全部的都是自由軟體





下圖是「教育類」的其中一個為幼兒及國小兒童設計的教學自由軟體