日前在災難復原演練過程中,將msdb資料庫備份還原到另一台新建立的測試主機時發生
訊息 14650,層級 16,狀態 1,程序 msdb.dbo.sp_send_dbmail,行 73 [批次開始行 0]
在此資料庫中未啟用 Service Broker 訊息傳遞。請使用 ALTER DATABASE 陳述式來啟用 Service Broker 訊息傳遞。
日前在災難復原演練過程中,將msdb資料庫備份還原到另一台新建立的測試主機時發生
訊息 14650,層級 16,狀態 1,程序 msdb.dbo.sp_send_dbmail,行 73 [批次開始行 0]
在此資料庫中未啟用 Service Broker 訊息傳遞。請使用 ALTER DATABASE 陳述式來啟用 Service Broker 訊息傳遞。
日前將一個正式資料庫還原至測試機上,但因為測試機不需要實際資料,因此我就Truncate所有Table後再壓縮資料庫來減少測試機器的硬碟佔用空間。
日前幫同仁建了一張View去Select Linked Server中的一張資料表,建立完成後我就試著去查詢該View,此時SQL卻報出2557的錯誤訊息。該訊息內容就是我沒有DBCC SHOW_STATISTICS該資料表的權限。
日前有一個需求就是每一年初產出今年所有日期的資料,並寫入資料表中。產出今年所有日期的資料的作法我是採用CTE搭配其遞迴的特性來做
前一陣子研究AG搭配複寫時會產生Cannot promote the transaction to a distributed transaction because there is an active save point in this transaction錯誤訊息
嗨! 各位朋友,我們正在尋找2020年 SQL PASS 第八屆幹部,歡迎有熱血的技術朋友一起加入討論,互相切磋學習進步。
很久以前就聽聞過SQL的計畫指南功能,但我一直沒有用過。可以從字面上初步了解就是針對某些查詢我們可以干涉最佳化引擎,讓SQL根據我們的需求來跑執行計畫。一些官方文件的舉例就是在不異動查詢語句的狀況下讓管理者可以針對語句下hint(如MAXDOP設定及OPTIMIZE FOR或Recompile等)。
今天開啟一部SQL主機,該主機是階段性使用,因此已經一年沒開機了。主機安裝兩個Instance,Instance A會鏡像一個DB到Instance B去。
最近由於SQL2008R2即將EOS,所以陸陸續續將資料庫升級到SQL2017的版本。而升級完成後有部分功能居然查詢時間太久導致Web TimeOut,經一番查詢後發現是新版SQL Server已在SQL2014採用新的基數估計(Cardinality Estimation簡稱CE)。而某些查詢會因為採用新版CE來估計統計反而誤用效能不好的執行計畫,官網分析有下列特性的查詢就可能發生查詢變慢的狀況。
之前聽過老師在介紹SQL Server 2016時有提到利用Windows Server 2016及SQL Server 2016可以在無網域的狀況下建立WSFC(Windows Server Failover Clustering),因此也可以在不用網域的狀況下建立Availability Group了。
以往鏡像的範例大多是一對一建立,日前依好友的要求所以寫了這一篇二對一的架構,設定內容都一樣,只是要多設定一台而已,以下簡略寫一下步驟。
相信很多情境下會在資料表的欄位設計上用到所謂的計算欄位(Computed Column),顧名思義該欄位存放的值就是經過計算的一個結果。然而計算欄位的資料內容一般常會是取出資料後即時運算並顯示結果,但有時候也會因為某些需求希望能將運算結果真實寫入在page中,而這個需求只要在建立資料欄位時加入一個關鍵字Persisted即可。
今日收到一個錯誤告警,顯示因為頁面層級鎖定已經停用導致REORGANIZE索引發生失敗。
日前檢視一支StoreProcedure時無意間發現了這一個問題。當時該SP的開發者在該SP中利用User丟進來的參數來串成他要的Query字串後再透過sp_executesql執行該語法字串。等於是在SP中組出一個Adhoc字串來跑,這樣完全無法享受到重用執行計畫的好處。
日前一位開發同仁反應他透過SSMS的UI要修改自己的密碼時都會顯示權限不足而無法修改,我試了一下發現的確如此
日前發現一個資料庫定序跟其他資料庫不同,為求一致性,我們可以單純用Alter Database去改資料庫的定序。但這樣的改法並不會修正該資料庫中其他資料表欄位原有的定序,只會影響未來新增的資料表。所以如果舊資料表欄位也要更改定序的話會需要Alter Table Alter Column 或 建立新資料表並重倒資料。
近期在撰寫TSQL做資料匯入時,會因為目的資料表有Identity型態的欄位,所以得在該資料表開啟IDENTITY_INSERT後再寫入資料。
今天同仁問了一個問題,他用字串動態組了一個超長的語法,但該字串列出來時發現中間少了一些語法,似乎是字串相加時被截掉了。
今天Alter一張千萬筆的資料表中一個欄位為NOT NULL,結果爆了LDF
日跟有位PASS好友聊到當他分批大量刪除資料時會有Blocking造成,因此他想在delete的時候加入rowlock hint來減少Blocking的發生。
他表示delete的where條件式並沒有索引可以用,我當下是建議可以建立合適索引後再來刪資料,資料刪得快相對也比較不會發生Blocking了。