2007年12月10日 星期一

Oracle MERGE Rows

MERGER INTO table_name table_alias
USING (table | view | sub_query ) alias
ON (join condition)
WHEN MATCHED THEN
UPDATE SET
col1=col_val1,
col2=col2_val
WHEN NOT MATCHED THEN
INSERT (column_list)
VALUES (column_values);

Example:

MERGER INTO copy_emp c
USING employees e
ON (c.employee_id = e.employee_id)
WHEN MATCHED THEN
UPDATE SET
c.first_name =e.first_name,
c.last_name = e.last_name,
.....
c.department = e.department
WHEN NOT MATCHED THEN
INSERT VALUES (e.employee_id, e.first_name, ...... , e.department);

2007年5月26日 星期六

WebSphere 記憶體配置

啟動 WebSphere Application Server - server1 後 , 在作業系統會看到一個 Java 的 Process , 也就是一個 JVM .

JVM 所使用的記憶體可以分成兩部分 :
1.) Java Heap
- Java 程式執行時所使用的記憶體
- GC 發生作用的記憶體
2.) Native Heap
- JNI, JVM 所使用的記憶體
- 產生thread 也會需要這一塊記憶體

一般我們在調整的 Java Heap Size 指的就是 [Java Heap] 這個部份 !

JVM Memory Size = Java Heap + Native Heap

也就是說你從作業系統看到的 Java Process 吃掉的記憶體是 Java Heap + Native Heap 的總合 !

在 Windows 的環境中 , 如果你是 32 位元的作業系統 , 一個檔案最大是 2 GB , 使用的 JVM 也是 32 位元的 , 一個 JVM 的 Process 能夠處理的記憶體最大也是 2 GB .

也就是說 JVM Memory Size = Java Heap + Native Heap 最大不可以超過 2 GB .

當我們在調整 Java Heap Size 時有兩個參數 , Initial Heap Size & Max Heap Size .

之前我對 Max Heap Size 的觀唸錯了 , 我以為最大可設成 2GB , 其實最大不可以超過 1.5 GB (IBM 建議的) , 因為如果 Java Heap = 2 GB , 那 Native Heap 就 = 0 , 系統一定會 OutOfMemory !

不過如果是 64 位元的作業系統就不會有 2 GB 的限制及問題 !

不要將 Initial Heap Size & Max Heap Size 的值設成一樣 , 如果設成一樣會造成 Garbage Collection 沒有效率 , 反而會影響 WebSphere 的效能 !
但是如果是在 Trouble-Shooting 時就可以設成一樣 !

2007年5月8日 星期二

更改 MS SQL 2005 隔離層級

select snapshot_isolation_state,snapshot_isolation_state_desc,is_read_committed_snapshot_on from sys.databases

ALTER DATABASE DB_Name
SET ALLOW_SNAPSHOT_ISOLATION ON

ALTER DATABASE DB_Name
SET READ_COMMITTED_SNAPSHOT ON

2007年3月16日 星期五

robocopy 指令

目前準備開始使用RoboCopy指令,可是發現它的參數說明是全英文的
某些參數說明我是翻譯出來了,但不知道是否有錯誤?
還有些翻譯不出來的(便不瞭解它的功能),可否請您幫個忙?


來源參數
/S : 複製每個目錄及其包含的子目錄,不複製空目錄 copy Subfolders
/E : 複製每個目錄及其包含的子目錄,也複製空目錄 copy Subfolders, including Empty Subfolders.
/SEC : 複製安全性 copy SECurity info (both source and dest must be NTFS).##

/A : 只複製設定成保存屬性的檔案,不要改變屬性的設定 copy only files with the Archive attribute set.
/M : 只複製設定成保存屬性的檔案,並清除保存屬性 like /A, but remove Archive attribute from source files.
/LEV:n : only copy the top n LEVels of the source tree.##

/MAXAGE:n : 排除比指定日期要舊的檔案 MAXimum file AGE - exclude files older than n days/date.##
/MINAGE:n : 排除比指定日期要新的檔案 MINimum file AGE - exclude files newer than n days/date.##
(If n < 1900 then n = n days, else n = YYYYMMDD date).

複製參數
/L : 顯示要複製的檔案 List only - don't copy, timestamp or delete any files.
/MOV : 移動檔案 MOVe files (delete from source after copying).##
/MOVE : 移動檔案與資料夾 Move files and dirs (delete from source after copying).

/Z : 在可重新開始的模式中複製網路檔案 copy files in restartable mode (survive network glitch).##

/R:n : number of Retries on failed copies - default is 1 million.
/W:n : Wait time between retries - default is 30 seconds.
/REG : Save /R:n and /W:n in the Registry as default settings.

/TBD : wait for sharenames To Be Defined (retry error 67).##

目的地參數

/A+:[R][A][S][H] : set file Attributes on destination files - add.
/A-:[R][A][S][H] : set file Attributes on destination files - remove.
/FAT : 將目的檔案設定成FAT8.3名稱(不太瞭解意思) create destination files using 8.3 FAT file names only.##
/SECFIX : FIX SECurity info on existing files and dirs.##
/TimFix : FIX Timestamp on all existing destination files,
including skipped files. ##
(prior to version 1.95 this was /T it's not backwards compatible
so scripts that use /T may fail)

/CREATE : CREATE directory tree structure + zero-length files only.

/PURGE : 刪除目的檔案,當來源檔案已不存在時 delete dest files/folders that no longer exist in source.
/MIR : MIRror a directory tree - equivalent to /PURGE plus all subfolders (/E) ##

記錄參數
/L : 顯示要複製的檔案(前面也有個/L,但不知差異在哪) List only - don't copy, timestamp or delete any files.
/NP : 不要顯示拷貝的百分比 No Progress - don't display % copied.
/LOG:file : 將記錄複寫到記錄檔 output status to LOG file (overwrite existing log). ##
/LOG+:file : 將記錄附加到記錄檔 output status to LOG file (append to existing log). ##

進階參數
/XO : 排除目的檔案的日期跟來源檔案一樣或更新 eXclude Older - if destination file exists and is the same date
or newer than the source - don't bother to overwrite it.
/XC | /XN : 排除變更過的檔案 eXclude Changed | 排除新增的檔案 Newer files
/XX | /XL : eXclude eXtra | Lonely files and dirs.
An "extra" file is present in destination but not source,
excluding extras will delete from destination.
A "lonely" file is present in source but not destination
excluding lonely will prevent any new files being added to the destination.
/IS : 複寫檔案,既使他們是一樣的(不太瞭解意思) Overwrite files even if they are already the same.

/XF file [file]... : 排除指定的檔案,可包含路徑與萬用字元 eXclude Files matching given names/paths/wildcards.##
/XD dirs [dirs]... : 排除指定的資料夾 eXclude Directories matching given names/paths. ##
XF and XD can be used in combination e.g.
ROBOCOPY c:\source d:\dest /XF *.doc *.xls /XD c:\unwanted /S

/MAX:n : 排除比指定bytes要大的檔案 MAXimum file size - exclude files bigger than n bytes. ##
/MIN:n : 排除比指定bytes要小的檔案 MINimum file size - exclude files smaller than n bytes.##
/XA:[R][A][S][H] : eXclude files with any of the given Attributes
/IA:[R][A][S][H] : Include files with any of the given Attributes ##

/X : report all eXtra files, not just those selected & copied.
/V : produce Verbose output log, showing skipped files.
/ETA : 顯示預估完成的時間 show Estimated Time of Arrival of copied files.

===================================================
來源參數
/S : 複製每個目錄及其包含的子目錄,不複製空目錄 copy Subfolders
/E : 複製每個目錄及其包含的子目錄,也複製空目錄 copy Subfolders, including Empty Subfolders.
/SEC : 複製安全性資訊,來源和目標必需都是NTFS檔案系統 copy SECurity info (both source and dest must be NTFS).
/COPY:copyflag[s] : 要複製的項目,預設複製檔案+檔案屬性+檔案時間 (default is /COPY:DAT). 項目代碼: D=資料(檔案), A=屬性, T=時間資訊, S=NTFS安全性設定, O=檔案擁有者資訊, U=稽核資訊?).
 (copyflags : D=Data, A=Attributes, T=Timestamps).
 (S=Security=NTFS ACLs, O=Owner info, U=aUditing info).
/COPYALL : 複製全部檔案資訊,與 /COPY:DATSOU 相同 Copy ALL file info (equivalent to /COPY:DATSOU).
/NOCOPY : 不複製全部檔案資訊,可與 /PURGE 搭配使用 Copy NO file info (useful with /PURGE).
/A : 只複製設定成保存屬性的檔案,不要改變屬性的設定 copy only files with the Archive attribute set.
/M : 只複製設定成保存屬性的檔案,並清除保存屬性 like /A, but remove Archive attribute from source files.
/LEV:n : 只複製到第 n 層子目錄 only copy the top n LEVels of the source tree.
/MAXAGE:n : 排除比指定日期(或日數)要舊的檔案 MAXimum file AGE - exclude files older than n days/date.##
/MINAGE:n : 排除比指定日期(或日數)要新的檔案 MINimum file AGE - exclude files newer than n days/date.##
 (若 n < 1900 則 n = 天數,否則 n = YYYYMMDD 格式的日期).
 (If n < 1900 then n = n days, else n = YYYYMMDD date).


複製參數
/L : 只顯示要複製的檔案,不作複製、刪除或修改日期的動作 List only - don't copy, timestamp or delete any files.
/MOV : 移動檔案 MOVe files (delete from source after copying).##
/MOVE : 移動檔案與資料夾 Move files and dirs (delete from source after copying).
/Z : 在可重新開始的模式中複製網路檔案 copy files in restartable mode (survive network glitch).##
/R:n : 當複製失敗時要重試的次數,預設100萬次 number of Retries on failed copies - default is 1 million.
/W:n : 重試間隔的時間,預設 30 秒 Wait time between retries - default is 30 seconds.
/REG : 將 /R:n 和 /W:n 的設定值存入登錄檔做為預設值 Save /R:n and /W:n in the Registry as default settings.

2007年3月7日 星期三

DB2 指令

db2 直接執行 *.sql 指令

使用 db2 -tvf "C:\test.sql"

db2 指令參考 => db2 ? help

2007年3月5日 星期一

MS SQL BackUp 指令 參數說明

選項 描述
BLOCKSIZE 實體區塊大小,單位為字節。
DESCRIPTION 指定備份集合的文字說明。對於還原時定位正確的備份集合十分有用。
DIFFERENTIAL 指定一個差異備份。這個選項只在使用完全數據庫備份有用。
EXPIREDATE = date |
RETAINDAYS = days EXPIREDATE 選項指定備份集合到期的日期(可以被覆寫)。RETAINDAYS 選項指定備份集合到期前的天數。
PASSWORD = password 指定備份的密碼。提供備份本身較大的安全性。
FORMAT | NOFORMAT FORMAT 選項指定媒體標題將被重寫,因此會使媒體中的原始數據無效。NOFORMAT 指定媒體標題將不被重寫。
INIT | NOINIT INIT 選項指定備份集合位於媒體的第一個檔案中並保存媒體標題,但覆寫媒體中的所有數據。也就是說,INIT覆寫在磁帶上的任何內容。NOINIT 選項指定備份附加到媒體中。如果您要重新使用磁帶,您將需要使用這個選項。
MEDIADESCRIPTION = text 設定媒體集合的說明。
MEDIANAME = media_name 指定媒體的名稱。
MEDIAPASSWORD = password 指定媒體集合的密碼
NAME = backup_set_name 設定備份集合名稱
NOSKIP | SKIP NOSKIP 選項指定在備份集合被覆寫前,檢查媒體中備份集合的到期日期。SKIP 選項不檢查到期日期。
NO_TRUNCATE 指定在備份後不刪減交易記錄文件。這個選項只在記錄文件備份中有用。
NOUNLOAD | UNLOAD NOUNLOAD 選項指定在完成備份後,媒體不被卸載(例如,不退出磁帶)。UNLOAD 選項指定在完成備份後,卸載媒體。
RESTART 指示 SQL Server 重新啟動被中斷的備份。
STATS [ = percentage ] 在完成指定備份的百分率後,顯示一個訊息。如果您想要檢視操作的過程,這個選項將會是有用的。
請確認您指定了備份附加到媒體中,或是應該覆寫媒體;您選擇的選項會影響到寫入磁帶中數據的數量。如果您正要備份數據到一個已經使用過的磁帶裝置上,卻沒有清除這個磁帶,也沒有指定要覆寫磁帶,您將發現磁帶的空間很快就用完了。在附加模式中,備份程序將只使用磁帶末端的可用空間。
________________________________________
真實世界 使用BACKUP
這裡有一些使用 BACKUP T-SQL 指令的例子。
下面的例子為 Example 數據庫備份數據文件:
BACKUP DATABASE Example
TO Backup_Dev_1, Backup_Dev_2
WITH
DESCRIPTION = "DB backup of example",
STATS = 5
GO
備份裝置是 Backup_Dev_1 和 Backup_Dev_2,並當每完成備份的 5% 就會顯示統計數字。注意,在先前的例子中提供備份的說明。
如果您在一個小的數據庫上測試這個例子,例如 Northwind,您看到的統計數字並不是 5% 的增量,您可能看到如 7%、16% 等的增量。這種差異的出現是因為備份程序一次讀取和寫入大於整個備份的 5%,這時就顯示那些較大的增量。對於較大的數據集合,寫入的增量將比 5% 小,所以將按照預設的顯示。
下面的陳述式將備份 Example 數據庫的交易記錄文件:
BACKUP LOG Example
TO Backup_Dev_3, Backup_Dev_4
WITH
DESCRIPTION = "DB backup of example",
STATS = 25
GO
備份裝置是 Backup_Dev_3 和 Backup_Dev_4,統計數字將顯示出 25% 的間隔時間。輸出結果顯示已完成操作和備份結果的百分率。您將會被通知備份了多少頁面、備份花了多長時間、以及備份的速度(MB/sec)。

2007年2月8日 星期四

Small Talk DEF Compile

開啟 Microsoft Visual FoxPro
輸入 "set defa to I:\CSS\CBP\DEF" [Enter]
輸入 "do CBPxxx.DEF" [Enter]

2007年1月25日 星期四

db2move 指令使用說明

db2move [dbname] [import/export]
下指令之位置需在該目錄

目附錄內檔案說明
db2move.lst => 檔案與表格對應檔
EXPORT.out => Export 的記錄檔
IMPORT.out => Import 的記錄檔
tabxx.ixf => Table 匯出來的文字檔
tabxx.msg => Table 的記錄檔

2007年1月3日 星期三

破解 MS Word 編輯密碼


1.用Word打開保護的word文件,檔案→另存新檔→選擇 網頁 格式,儲存一個 HTML文件,
2.用記事本打開該HTML文件,搜索 "UnprotectPassword",
會看到
1234ABCD
3.將中間八個英數字都用8個0來代替,存檔。
4.此時的 Word 文件的密碼就被清空了。
5.用Word 開啟這個Html檔案,再另存新檔,改成 *.doc 格式即可
6.選工具→解除文件保護,密碼就不用輸入了案確定即可。