Time of Update: 2017-02-28
死結是指在某組資源中,兩個或兩個以上的線程在執行過程中,在爭奪某一資源時而造成互相等待的現象,若無外力的作用下,它們都將無法推進下去,死時就可能會產生死結,這些永遠在互相等待的進程稱為死結線程。簡單的說,進程A等待進程B釋放他的資源,B又等待A釋放他的資源,這樣互相等待就形成死結。 如在資料庫中,如果需要對一條資料進行修改,首先資料庫管理系統會在上面加鎖,以保證在同一時間只有一個事務能進行修改操作。如事務1的線程 T1具有表A上的排它鎖,事務2的線程T2
Time of Update: 2017-02-28
我們可以通過資料複製跨區域網路、Internet在不同的資料庫伺服器上面維護多個資料的多個拷貝,同時以同步或非同步方式保證各個拷貝之間的資料一致性。 SQL Server提供完善的內建資料複製能力,它是SQL Server核心引擎非常重要的一部分。 SQL
Time of Update: 2017-02-28
1. Nested Loop Join(嵌套迴圈連接) 演算法: 其思路相當的簡單和直接:對於關係R的每個元組 r 將其與關係S的每個元組 s 在JOIN條件的欄位上直接比較並篩選出合格元組。寫成虛擬碼就是: 代價: 被連接的表所處內層或外層的順序對磁碟I/O開銷有著非常重要的影響。而CPU開銷相對來說影響較小,主要是元組讀入記憶體以後(in-memory)的開銷,是 O (n * m) 對於I/O開銷,根據 page-at-a-time 的前提條件,I/O cost = M +
Time of Update: 2017-02-28
一、知識點 完全備份:備份全部選中的檔案夾,並不依賴檔案的存檔屬性來確定備份那些檔案。(在備份過程中,任何現有的標記都被清除,每個檔案都被標記為已備份,換言之,清除存檔屬性)。完全備份也叫完整備份。 差異備份:差異備份是針對完全備份:備份上一次的完全備份後發生變化的所有檔案。(差異備份過程中,只備份有標記的那些選中的檔案和檔案夾。它不清除標記,即:備份後不標記為已備份檔案,換言之,不清除存檔屬性)。 增量備份:增量備份是針對於上一次備份(無論是哪種備份):備份上一次備份後,
Time of Update: 2017-02-28
Sql server 2012 加入了一些新的系統函數, 下邊簡單介紹一下CONCAT CONCAT 函數最多可以串連255個字元變數,當調用這個函數的時候需要至少接收兩個參數,參數類型不一定是字串類型,也可以是可以隱式轉換為字串的類型比如int ,float等類型。只要符合sql
Time of Update: 2017-02-28
您可以在最佳化資料庫查詢,升級資料庫伺服器,但仍不足以保證應用程式良好的資料庫效能.這是因為問題可能產生於系統中並發(指同步)地執行查詢操作.實際上,在產品化的資料庫系統中,同步執行查詢可能引發的問題是再多的查詢最佳化也不能解決的.我們可以有最佳化的、執行最快的查詢,但是,如果這些查詢因為並發問題得不到需要的資料,說明最佳化工作還做得不夠充分。 從根本上講,我們必須保證資料庫查詢和執行查詢的串連必須能夠在並發執行中沒有錯誤(如死結或更新衝突),並能在可接受的等待時間內得到結果.如果不能做到
Time of Update: 2017-02-28
--SQL正則替換函數代碼如下:CREATE function dbo.regexReplace(@source ntext, --原字串@regexp varchar(1000), --Regex@replace varchar(1000), --替換值@globalReplace bit = 1, --是否是全域替換@ignoreCase bit = 0 --是否忽略大小寫)returnS varchar(1000) ASbegindeclare @hr integerdeclare
Time of Update: 2017-02-28
SQL Server中的事務和鎖 事務全部是關於原子性(atomicity)的。原子性的概念是指可以把一些事情當作一個單元來看待。從資料庫的角度看,它是指應全部執行或全部不執行的一條或多條語句的最小組合。 在事務中可以標記的點: 1. Begin Tran:設定起始點。 2. Commit Tran:使事務成為資料庫永久的、無法復原轉的一部分。 3. Rollback Tran:本質上說想要忘記它曾經發生過,即使復原,回到事務發生之初。 4. Save
Time of Update: 2017-02-28
來源於點擊開啟連結 情境: 最近一台DB伺服器偶爾出現CPU警示,我的郵件警示閾(請讀yù)值設定的是15%,開始時沒當回事,以為是有什麼統計類的查詢,後來越來越頻繁。 探索: 我決定來查一下,究竟是什麼在作怪,我排查的順序如下: 1、首先開啟Cacti監控,發現最近CPU均值在某天之後驟然上升,並且可以看到SystemProcessor Queue Length 和 sqlservr%ProcessorTime
Time of Update: 2017-02-28
官方下載的SQL Server 2008評估版預設的評估期限為180天,到達180天后則License到期失效,需要重新評估; 點擊開始-所有程式-Microsoft SQL Server 2008-組態工具-SQL Server 安裝中心 然後點擊左側的維護,在點擊右側的版本升級,接著按照提示一直點下一步,到產品金鑰的時候輸入 開發版: 可以評估通過的序號 企業版:
Time of Update: 2017-02-28
情境:DBA那邊給我匯出了所有的儲存、函數等等對象的建立指令碼,有上千個檔案.現在需要將這些對象建立指令碼匯入到另外一個庫,如何解決呢?手動一個個執行顯然不太現實.於是手動寫了一個批處理,將所有的檔案形成一個.SQL的指令碼,最後以@產生的.SQL指令碼方式匯入到目標庫中.OS環境:WINDOWS xp指令碼內容如下:@echo offif exist list.sql del list.sql /q:inputclsset input=:set /p input=
Time of Update: 2017-02-28
相信大家常常會遇到將SqlServer查詢結果匯出到Excel的問題。如果匯出的次數少,直接“Save Results As...”就是了;但是當要分別在每個表取樣,那就相當麻煩了。今天就為大家提供一個脫離office組件的可以將語句結果匯出到Excel的過程,希望會對大家有協助! ---匯出到Excel ---使用說明: -- 1.執行時所已連線的服務器決定檔案存放在哪個伺服器 -- 2.遠程查詢語句中,要加上資料庫名 ALTER PROC
Time of Update: 2017-02-28
遊標概念 資料庫操作中我們常常會遇到這樣情況,即從某一結果集中逐一地讀取一條記錄。那麼如何解決這種問題呢?遊標為我們提供了一種極為優秀的解決方案。 遊標(cursor)是系統為使用者開設的一個資料緩衝區,存放SQL語句的執行結果。 每個遊標區都有一個名字。使用者可以用SQL語句逐一從遊標中擷取記錄,並賦給主變數,交由主語言進一步處理。遊標提供了一種對從表中檢索出的資料進行操作的靈活手段,就本質而言,遊標實際上是一種能從包括多條資料記錄的結果集中每次提取一條記錄的機制。 遊
Time of Update: 2017-02-28
SQL SERVER中PERCENTILE_CONT和PERCENTILE_DISC PERCENTILE_CONT和PERCENTILE_DISC 看下面一組SQL語句:? 1 2 3 4 5 6 7 8 9
Time of Update: 2017-02-28
最近在公司上班,有時候需要將公司伺服器上的資料庫copy到自己電腦上帶回家,心情好的時候加會小班嘛。很多朋友可能像本人一樣不會,或者不熟悉如何快速的遷移資料庫。 方法一:指令碼法 如果你的資料庫每天都有更新,而且今天改動量不大,可以將你所有的改動弄成指令碼,放到本機資料庫執行即可。就行一般公司開發寫資料庫發布指令碼一樣。 方法二:備份與還原法 在伺服器的資料庫中選中要轉移的資料庫,按滑鼠右鍵,選所有任務->備份資料庫;將備份copy到本地,選中本地已有的資料庫(沒有
Time of Update: 2017-02-28
這裡介紹了為提高 SQL Server 安裝的安全性,您可以實施的十件事情: 安裝最新的服務包 為了提高伺服器安全性,最有效一個方法就是升級到 SQL Server 2000 Service Pack 4 (SP4)。另外,您還應該安裝所有發行的安全更新。 使用 Microsoft 基準安全性分析器(MBSA)來評估伺服器的安全性。 MBSA 是一個掃描多種 Microsoft 產品的不安全配置的工具,包括 SQL Server 和 Microsoft SQL
Time of Update: 2017-02-28
本文原始來自網上一篇文章,不過原始的預存程序有些問題,本文經過驗證並進行了進一步的修正,增加了備份的時候自動增加備份日期,文章內容如下: 備份處理的預存程序 set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go /*--備份所有資料庫 備份的檔案名稱為資料庫名+日期+.bak 將所有的使用者資料庫(或指定的資料庫列表) 備分到指定的目錄下. /*--調用樣本 --備份所有使用者資料庫 exec p_backupdb
Time of Update: 2017-02-28
最近需要測試一個項目, 需要SQL SERVER 2008, 在微軟下載評估版後進行安裝 中間發現了種種安裝失敗的問題,對該過程進行了記錄,希望給遇到此類問題的朋友們共同探討,有所協助: 1. WINDOWS 2003, WINDOWS 7 新裝的時候可行,但是如果有刪除後重新安裝則無法再次安裝 2. 根據網上無數先驅的失敗提示, 進行了無數重試,包括更改安裝檔案目錄,修改註冊表許可權等均不能解決 3.
Time of Update: 2017-02-28
由於自己開發環境使用的是MS SQLServer 2005,而伺服器上部署的依然是MS SQLServer 2000,於是在系統開發完成後,還得將MS SQLServer 2005匯入 MS SQLServer 2000,雖然同是MS家族的產品,匯入匯出也算方便,但是有時候也會出現問題,比喻說這樣操作: 1、在SQL Server Management Studio中,選擇資料,產生指令碼 2、選擇下一步,然後在“為伺服器版本編寫指令碼”選擇SQL
Time of Update: 2017-02-28
E盤根目錄建立一個Excel檔案aa.xls後測試如下代碼複製代碼 代碼如下:use tempdb go if (object_id ('udf_getExcelTableNames' ) is not null )drop function dbo .udf_getExcelTableNames go create function udf_getExcelTableNames (@filename varchar (1000 ))returns @t table (id int ,