查看MSSQL資料庫的佔用空間
在 MSSQL 中,可以通過系統檢視或內建存儲過程來查看資料庫的大小,包括資料和索引的占用。以下是常用的方法: 方法 1:使用 sp_spaceusedsp_spaceused 是一個內建的存儲過程,用於查看資料庫的空間使用情況。 查看整個資料庫的大小 切換到目標資料庫: 12USE [YourDatabaseName];GO 執行以下命令:返回的關鍵結果: 1EXEC sp_spaceused; database_size:資料庫的總大小(資料和索引)。 unallocated space:未分配的空間。 查看特定表的大小 執行以下命令:返回的關鍵結果: 1EXEC sp_spaceused N'[YourTableName]'; reserved:表的總預留空間(資料、索引和未使用空間)。 data:表中資料的大小。 index_size:表的索引大小。 unused:未使用的空間。 方法 2:使用 sys.master_files 和 sys.database_files可以直接從系統檢視中查詢資料庫文件的大小。 查看資料庫的...
分散式系統的CAP定理(CAP theorem)
在設計分散式系統(Distributed System)前,必須要了解CAP定理(CAP theorem),又稱布魯爾定理(Brewer’s theorem)。 CAP定理的三個字母C,A,P分別代表以下: Consistency:一致性 Availability:可用性 Partition-tolerance:分區容錯 Consistency 一致性指分散式系統中的每個節點(nodes)所查到的都是一致且最新的資料。 Availability 可用性在任何時候,每次向系統發出請求都能在合理的時間內獲得回應,但並不保證回應的資料為最新。 Partition-tolerance 分區容錯當網路或節點故障造成系統的不同網路分區間(Partitions)的傳輸資料丟失時,系統仍可以正常運作。 滿足以上三種特性是一個完美的分散式系統欲達成的目標。 不過CAP定理指出,一個分散式系統最多只能滿足以上三個特性中的兩個,而無法同時滿足三個。 You can have at most two of these properties for any shared-data system 因...
Hibernate → @DiscriminatorColumn說明
@DiscriminatorColumn 註解用於在 JPA 繼承結構中,為單表策略 (InheritanceType.SINGLE_TABLE) 的繼承層次結構指定區分列。這樣,JPA 可以使用這個列來識別每一行對應的具體實體類型。 讓我們詳細解釋一下: 註解部分1@DiscriminatorColumn(name="accountType", discriminatorType = DiscriminatorType.STRING) @DiscriminatorColumn:這個註解指定了用來區分不同實體類型的列。 name="accountType":這指定了區分列的名稱為 accountType。這個列將會被添加到生成的單表中,用來存儲每一行對應的實體類型。 discriminatorType = DiscriminatorType.STRING:這指定了區分列的類型為 STRING。區分列可以是 STRING、CHAR 或 INTEGER。 作用當使用 InheritanceType.SINGLE_TABLE 繼承策略時,所...
HashMap → computeIfAbsent()
12345678910// 當key不存在,就執行第二個參數的函數,並回傳執行後的值,然後也會put// 如果函數返回 null,則不會put// 如果函數本身拋出(未經檢查的)異常,則重新拋出異常,則不會putpublic static void main(String[] args) { Map<String, Integer> stringLength = new HashMap<>(); stringLength.put("John", 2); int i = stringLength.computeIfAbsent("John", String::length); System.out.println("i = " + i); System.out.println("stringLength = " + stringLength);} 這段程式碼看起來沒有明顯的錯誤,但可以做一些優化。 12345678910publ...
HashMap → putIfAbsent()
putIfAbsent() 是 HashMap 在 Java 中的一個實用方法,它屬於 Map 介面。這個方法用來在對應的鍵(key)不存在於映射中時,將一組key,value 放入映射(map)裡。如果映射先前已包含該鍵(key)的映射,則不做任何更動。putIfAbsent() 方法既可以確保不會不小心覆蓋已有的鍵值(key, value),也可以用來在多執行緒環境下安全的更新map,假設映射本身是同步的或者是一個 ConcurrentHashMap。 方法簽名 1V putIfAbsent(K key, V value) K: 鍵的類型 V: 值的類型 返回值:如果映射中已經有這個鍵,則返回鍵對應的舊值;如果沒有,則返回 null(並且將新的鍵值對插入映射)。 範例1以下是使用 putIfAbsent() 方法的一個簡單範例: 1234567891011121314151617181920212223import java.util.HashMap;import java.util.Map;public class PutIfAbsentExample { ...
HTML-Script 屬性
src屬性src 屬性指定外部腳本的 URL,允許開發者將 JavaScript 程式碼組織在單獨檔案中,而非直接寫在 HTML 內。當<script>標籤包含src屬性時,不應包含嵌入式腳本程式碼。 type屬性type 屬性聲明腳本的 MIME 類型 (現已非必需,因為現代瀏覽器預設使用JavaScript)。早期 HTML 規範中,這個屬性用來指示腳本語言的類型,如”text/javascript“ 或 “application/javascript“。 async屬性async 屬性是個布林屬性,告訴瀏覽器非同步的載入檔案。這意味著腳本會在下載完畢後儘快執行,但不會阻塞 HTML 文件的解析。此屬性僅適用於帶有src屬性的<script>標籤。 1<script src="xxx/script.js" async></script> defer屬性與async屬性類似,defer屬性也會指示瀏覽器非同步載入腳本,但有個關鍵不同:帶有 defer 屬性的腳本保證會在文件解析完成後、DOMContent...
Docker-MySql
新增檔案將內容貼上後,將檔案命名為docker-compose.yml,再執行docker-compose up -d 12345678910111213141516171819202122232425version: '3.7'services: mysql: image: mysql:5.7 platform: linux/amd64 environment: - MYSQL_ROOT_PASSWORD=root - MYSQL_DATABASE=sample - MYSQL_USER=demouser - MYSQL_PASSWORD=e23s5 volumes: - ./volumes:/var/lib/mysql - ./conf.d/mysql.cnf:/etc/mysql/conf.d/mysql.cnf - ./data:/data - ./init.d:/docker-entrypoint-initdb.d container_n...
Docker-Solr Compose
本機開發時會用到,遇到要升級時需要測試環境,所以本機使用 Docker 建立 Solr6,然後在 VM 上建立 Solr8 Solr 612345678910111213141516171819202122232425version: '3'services: zookeeper: image: zookeeper:3.7 ports: - "2181:2181" solr: image: solr:6.6.3 ports: - "8983:8983" volumes: - data:/var/solr #- ./init-solr.sh:/docker-entrypoint-initdb.d/init-solr.sh environment: - ZK_HOST=zookeeper:2181 - SOLR_HOST=127.0.0.1 - JETTY_PORT=8983 command: - s...
PowerShell-取得上一個月的事件錯誤記錄
最近要將每月的報告自動化,所以使用PowerShell來取得一些記錄,要取得的記錄是事件檢視器前一個月的「應用程式」、「安全性」、「系統」各個的錯誤事件。 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647$month = Get-Date -Format 'MM'$year = Get-Date -Format 'yyyy'$dir = 'EventLog'if($month -eq 1){ $year = $year-1 $month = 12}else{ $month = $month-1} $last = [DateTime]::DaysInMonth($year, $month)$first = Get-Date -Day 1 -Month $month -Year $year -Hour 0 -Minute 0 -Second 0$l...













