2010年9月29日 星期三

SQL PK重註

由於PK用太久
會導致資訊越來越分散
也會影響SQL速度
所以MS有分享了一個方式可以讓人檢查
也可以重註PK方式

檢查方式

SELECT a.index_id, name, avg_fragmentation_in_percent, *
FROM sys.dm_db_index_physical_stats (DB_ID(), OBJECT_ID('MG_Strategic_Plan_MeasureGroup_default_partition'),
NULL, NULL, NULL) AS a
JOIN sys.indexes AS b ON a.object_id = b.object_id AND a.index_id = b.index_id

在MS提供文件說 avg_fragmentation_in_percent 不能超過30
超過表示太分散囉
要重註

重註語法

ALTER INDEX [PK_TableName]
ON dbo.[TableName]
REBUILD WITH (ONLINE = ON);


我是這樣弄的
再重新檢查一次
發現降下來或是變成0了
成功 ^_^

參考網站

2010年9月27日 星期一

TSQL INPUTBUFFER

暫記一下
列出目前執行的狀態


select * from sys.sysprocesses
dbcc INPUTBUFFER (17) --17是編號

2010年9月22日 星期三

C# UserControl Event 觸發

因為當然大家的UserControl的功能不可能全寫死
例如每次都會被用到才寫進去
不常用就留觸發出來就好了
所以就要寫觸發與新增功能來

這樣說會不會很模糊 XDDDD
例如Button 原本UserControl內的功能是A
但拉到form後又想新增Button按下去有B功能
就要這樣寫


public event EventHandler MyEvent; //這是外層宣告
protected void button1_Click(object sender, EventArgs e) //記得將private改成protected
{
MyEvent(sender, e); //觸發的新增功能
}

C# UserControl

原來UserControl要另外寫專案來包 >_<"

開一個WindowsFormsControlLib的專案
然後就可以建立UserControl了
然後執行後
產生的DLL檔
拉到元件列裡面
就可以拿出來使用囉
而要做對外的觸角 (給值與取值的地方)
就寫

public string TextValue
{
get { return this.textBox1.Text; }
set { this.textBox1.Text=value; }
}


一直以為可以直接做 = =+
原來是我誤會了 囧

2010年9月17日 星期五

C# Windows AP 被綁畫面!!!! DoEvents()

因為很多時候
執行AP的某些動作 其實AP畫面不會馬上SHOW
會等全部做完以後才顯示出來!
這時候就要用到


Application.DoEvents();


藥到病除!! XDDD

2010年9月14日 星期二

Linq To Entity Framework (Store Proceduce篇)

再看完前兩篇文章
就會想說
那 Entity Framework勒
應該也可以呼叫Store Proceduce吧
對囉
當然可以
只是
麻煩了一個步驟 XD

首先一樣先引入Store Proceduce進來
然後勒
要在他的地方點右鍵 選 Add Function Import
這樣他才能被呼叫出來
然後設定輸出要啥類型的 之類的東西
就可以正常呼叫囉

entity1.GetUserLevel("", "");

Linq To Sql 呼叫 Store Procedure

那天就在研究Store Procedure的東西
發現Linq To Sql 可以直接拉進來用欸
太優了 >/////<

方法一樣
開啟Linq To Sql後
將Store Procedure拉進來
一放
就可以呼叫囉 A_A

var data2 = from a in linq.SelectItemLevel(934) //SelectItemLevel是procedure 934是值
select a;