發表文章

2022/11 機車路考

經驗分享: 方向燈只有變換車道、停車再開需要打 我覺得訣竅就是全程不要急加速,很容易噴出車道,只有定速緩慢行駛,考官不會催人 直線七秒: 不要催太快,會容易不到七秒飲恨,最好是緩慢前進,如果發現快要偏離航道,微微催油門,把整體方向變成前進,就不容易偏 U型區: 進來時微催油門,給點動力,之後放開,只擺動車頭,不然很容易衝出線外,盡量可以繞大圈一點有空間轉 重點是要找場地多練習幾次,基本上真的不難!

刪除大量資料造成Lock escalation鎖定升級 SQL Server

圖片
情況: 在MS-SQL 1.開一視窗Begin Transaction,delete from tableA (一萬多筆資料) 2.開另一視窗 insert into TableA () values() 發現步驟2怎麼都不會成功,就一直在執行 於是我將 步驟1刪除的資料縮小範圍,變成幾百筆,步驟2就馬上插入成功了! 於是,我上網問原來是因為Lock escalation(鎖升級)所造成的! 當在一個交易中(還未提交或rollback),操作了大量資料,應用程式會取得無數個row lock ,當row lock的數量超過了特定的值,為了減少locklist的負載,將row lock升級成table lock, 也就是整個表都被鎖起來了!導致我步驟2無法成功執行(另外一個連接)。 因為SQL Server Management在刪除大量資料時,是會全部找出來一起刪除,並不是一次一次刪除 為了避免鎖定升級的情況,我們可以採取分批次來刪除資料 批次刪除語法: /**每次刪除1000筆表A的資料**/ DoItAgain: DELETE TOP (1000) FROM TableA IF @@ROWCOUNT > 0 GOTO DoItAgain _________________________________________________________ 後來我還是想不通,我慢慢地把TOP的筆數提高,測試他的極限,發現7000又發生鎖定升級 DoItAgain: DELETE TOP ( 7000 ) FROM  TableA IF @@ROWCOUNT > 0 GOTO DoItAgain ____________________________________________________________ 如何觀察鎖定升級(Lock escalation)? 1. SQL Management studio選取Tool->SQL Server Profiler 2.連接對應的DB 3.如下圖選擇 之後你開著追蹤視窗,邊下達指令來實驗,當鎖定升級的情況發生,會看到如下紀錄: ___________________...

如何決定初始化ResourceManager時,要使用的參數

https://stackoverflow.com/questions/5093885/how-to-access-global-resources-for-localization-in-class-library?rq=1 new ResourceManager("Resources.lang", Assembly.Load("App_GlobalResources")); 如何決定初始化ResourceManager時,要使用的參數,請看第一個網址的回答

如何使用現成的web service

https://sites.google.com/site/easonsjiaoxuepingtai/asp-net-web-service/shi-yongasp-net-call-web-service-jiao-xue 請參考這個網站裡面的教學,圖文並茂讚:)

Unable to start debugging on the web server.Could not start ASP.NET debugging

圖片
ASP.NET 4.5 has not been registered on the Web server. You need to manually configure your Web server  for  ASP.NET 4.5  in   order  for   your site to run correctly. 當我作業系統換到Windows10,在我打開.NET 4.5發生的這兩個錯誤 我的作法是 1.打開控制台 2.選取程式集 3.選取程式與功能 4.你會看到一個開啟或關閉Windows功能的選項 5.點進去之後,找到IIS相關的(Internet Information Services) 6.展開之後看到World Wide Web服務展開他 7.找到ASP.NET4.7選擇他 8.按下確認,完成設定 如果你跟我的情況一樣,這樣或許可以解決問題,請參考:)

table 外來鍵限制

1.Create Table tableName( columName datatype not null Primary key, id int not null Primary key, gender nvarchar(50) ) 2.隨時使用某資料庫 Use DBname Go 3.增加FOREIGN KEY 限制 Alter table 資料表名字 add constraints 外來鍵的表_外來鍵_FK Foreign key (外來鍵名) references 要參考的主鍵表名(主鍵名) 4.如果要加之前外來鍵表不符合這個限制 需要先改之後才能加 例如說Person表有GenderId=99 這時候要加限制 但Gender表的id只有1,2 所以不符合 不能加 要把99改掉 5.外來鍵限制的意義 保持資料完整性 避免出現不符合常理的資料

c# out 輸出參數修飾子 example

    class Program     {         static void Main(string[] args)         {            //1.傳值 2.傳址 3.輸出參數 4.陣列參數            //out 3.輸出參數            //1.傳回多個值            //2.呼叫的地方和被呼叫的方法都要加上out關鍵字            //3.在含有out關鍵字參數的方法裡面,一定要將所有的out參數賦予值             int i = 4;             int j = 2;             int sum;             int multiple;             int division;             int subtraction;             para(i, j, out sum, out multiple, out division, out subtraction);             Console.WriteLine(sum);         ...