VS 裡的 ==, 與 Object.Equals 是不同的.
來個程式碼吧, 這樣比較好解釋.

py3939 發表在 痞客邦 留言(1) 人氣()

使用過如泛型 List 的人都知道, 當我有數值要排序的時候很簡單, 因為這是泛型具備的功能.  可是當自訂的 Class 要怎樣做呢?
其實很簡單, 只要繼承自 IComparable, 外加實做 CompareTo Method 就可以了. 看看 List.Sort 的說明及其多型就知道了.

py3939 發表在 痞客邦 留言(0) 人氣()

於 Oracle SQL Tuning Pocket Reference, By Mark Gurry 是這樣說的 :
1. 哪一個比較快是要看情況的. 使用 exists 時, 是由外面的 table 當作 driving table. 使用 in 時, 先執行子查詢, 再把此結果與外面的 table 做 join.

py3939 發表在 痞客邦 留言(0) 人氣()

http://msdn.microsoft.com/zh-tw/library/yz2be5wk.aspx
 

py3939 發表在 痞客邦 留言(0) 人氣()

StringBuilder
String 或 StringBuilder 物件之串連作業的效能是根據記憶體的配置頻率而定。String 串連作業永遠都會配置記憶體,而 StringBuilder 串連作業只有在 StringBuilder 物件緩衝區太小而無法容納新資料時,才會配置記憶體。因此,如果要串連固定數目的 String 物件,最好使用 String 類別的串連作業。在這種情況下,編譯器 (Compiler) 甚至可能將個別的串連作業結合成一個單一作業。如果要串連任意數目的字串 (例如,如果迴圈串連任意數目的使用者輸入字串),則對於串連作業來說最好使用 StringBuilder 物件。

屬性
Capacity     取得或設定由目前執行個體配置的記憶體可以包含的最大字元數。
Length     取得或設定目前 StringBuilder 物件的長度。

方法
Append     多載。 將指定物件的字串表示附加至這個執行個體的尾端。
AppendFormat     多載。 將格式化的字串 (其中包含零或更多的格式規格) 附加至這個執行個體。每一個格式規格會由對應之物件引數的字串表示所取代。
EnsureCapacity     請確定這個 StringBuilder 其執行個體的容量至少是某一指定的值。
Insert     多載。 在指定的字元位置上將指定物件的字串表示插入這個執行個體。
Remove     從這個執行個體移除指定的字元範圍。
ToString     多載。 覆寫。 將 StringBuilder 的值轉換為 String。

StringBuilder串接字串的迷思
http://blog.darkthread.net/blogs/darkthreadtw/archive/2007/12/15/stringbuilder-for-static-string-concate.aspx
StringBuilder被拿來串接靜態變數=4152ms
string 直接指定靜態值=6ms
@"..."=7ms

StringBuilder與String的字串相接效能大車拼
http://blog.darkthread.net/blogs/darkthreadtw/archive/2009/09/07/article-stringbuilder-vs-string.aspx


py3939 發表在 痞客邦 留言(0) 人氣()

List
表示可以依照索引存取的強型別物件清單。 提供搜尋、排序和管理清單的方法。
建構函式
List<T>()     其為空白執行個體且具有預設的初始容量。
List<T>(IEnumerable<T>)     從指定之集合複製的元素,且具有容納複製之元素數目的足夠容量。
List<T>(Int32)     這個執行個體是空白且可具有指定的初始容量。

屬性
Capacity     在不需要調整大小之下,取得或設定內部資料結構可以保存的元素總數。
  Capacity 是需要調整大小前 List<T> 可以存放的元素數目。Count 則是 List<T> 中實際含有的元素數目。
  Capacity 永遠大於或等於 Count。 加入元素時,如果 Count 超過 Capacity,則會先藉由自動重新配置內部陣列而增加容量,然後再複製舊元素並加入新元素。
  可以透過呼叫 TrimExcess 方法或明確地設定 Capacity 屬性的方式來降低容量。 當明確地設定 Capacity 的值時,也會重新配置內部陣列以容納指定的容量,並且會複製所有元素。
  http://msdn.microsoft.com/zh-tw/library/y52x03h2.aspx
 
方法
Add     將物件加入至 List<T> 的結尾。
AddRange     將特定集合的元素加入至 List<T> 的結尾。
BinarySearch(T)     使用預設的比較子 (Comparer) 並傳回元素以零起始的索引,來搜尋元素之整個排序的 List<T>。 必須已經依照比較子實作排序過,否則結果會不正確。這個方法為 O(log n) 運算。
BinarySearch(T, IComparer<T>)     使用指定的比較子並傳回元素以零起始的索引,來搜尋元素之整個排序的 List<T>。
Clear     將所有元素從 List<T> 移除。
Contains     判斷某元素是否在 List<T> 中。 這個方法是 O(n) 運算。
CopyTo(T[])     將整個 List<T> 複製到相容的一維陣列,從目標陣列的開頭開始。
Find     搜尋符合指定之述詞所定義的條件之元素,並傳回整個 List<T> 內第一個相符的項目。
IndexOf     多載。 傳回 List 或其中一部分中值的第一個項目之以零起始的索引。     
Insert     將項目插入 List 中指定的索引處。
InsertRange     將集合的元素插入至位於指定索引的 List 中。
Remove     從 List 移除特定物件的第一個相符項目。
RemoveAt     移除 List 中指定之索引處的項目。
Sort     多載。 排序 List 或其中一部分中的元素。
ToArray     將 List 的元素複製到新的陣列。
TrimExcess     將容量設為 List 中項目的實際數目,如果該數目小於臨界值。
 

py3939 發表在 痞客邦 留言(0) 人氣()

沒想到要在 C# 中使用, Thread Pool 這麼簡單.

如下簡單範例, 當然實際的程式不可能這樣, 但這是一個好入門概念.

文章標籤

py3939 發表在 痞客邦 留言(0) 人氣()

imp 遇到以下的錯誤, 這是怎樣一回事.

m_row$$ 這個欄位心裡有印象, 記得在以下兩種情況, oracle 都會幫忙建一個 unique index, 裡面就是這個欄位. 心裡有這個印象, 但沒有特別去注意 ...

py3939 發表在 痞客邦 留言(0) 人氣()

像我們使用 oracle, 如果要將一個 Table 的資料自 A DB 複製到 B DB, 當然有很多做法, 像使用 MView 就是一個極為簡單的解決方案, 但如果是多個要複製到一個, 例如 A, C DB 複製到 B DB, 又不想因為 A DB 有問題中斷服務, 導致 C DB 的資料沒有複製到 B DB. 目前想到的就是自己使用 Trigger 做 Replication 的行為.

舉一個最簡單的例子, 假設要處理一個產品定義的 Prod Table, Schema 如下, 我們將對這一個 table 所做的 DML 都記錄起來, 然後再將這些 DML 拿到目的 DB 去執行就可以達成我們的目的.

py3939 發表在 痞客邦 留言(0) 人氣()

ORA-14402: updating partition key column would cause a partition change
這是一個發生在 Partition Table 的問題, 例如我們以 Save_Time 當做分割 Partition 的欄位, 且一個月一個 Partition. 所以假設我們的 Table 裏有下列的 Partition.

py3939 發表在 痞客邦 留言(0) 人氣()

1 234