SQLServer2008中SQL應用系列--目錄索引當一個用戶會話(會話1)已經鎖定了一個資源,而另一個會話(會話2)想要修改該資源,并且會話2也鎖定了會話1想要修改的資源時,就會出現“死鎖”(deadlocking)。在另一方釋放資源前,會話1和會話2都不可能繼續。所以,SQLServer會選擇死鎖中的一個會話作為“死鎖犧牲品”。注意:死鎖犧牲品的會話會被殺死,事務會被回滾。注意:死鎖與正常的阻塞是兩個經常被混淆的概念。發生死鎖的一些原因:1、應用程序
系統 2019-08-29 23:01:16 2363
原文:SQLServerLog文件對磁盤的寫操作大小是多少SQLServer數據庫有三種文件類型,分別是數據文件、次要數據文件和日志文件,其中日志文件包含著用于恢復數據庫的所有日志信息,SQLServer總是先寫日志文件ldf,數據變化寫入mdf則可以滯后,所以日志寫入的速度在一定程序上決定了SQLServer所能承載的寫事務量,那么ldf寫入大小是多少呢?要知道SQLServer寫Log的大小,這里使用工具ProcessMonitor這里設置一個Filt
系統 2019-08-12 01:33:02 2363
微軟近日確認SQLServer軟件的最新版本SQLServer2008R2將于今年五月份正式推出。本周二,微軟在官方博客上發布了這條消息,這條消息并稱五月份起SQLServer2008R2將出現在微軟產品售價列表中,并開始正式上市。不過微軟這次提供的消息中并沒有明確指出SQLServer2008R2的具體發布日期,這條消息驗證了去年12月份有關這款產品會在今年五月份發布的傳言。今年早些時候,微軟的合作伙伴Unisys公司曾發布了一份96核UnisysES7
系統 2019-08-12 01:33:40 2362
PIVOT,UNPIVOT運算符是SQLserver2005支持的新功能之一,主要用來實現行到列的轉換。本文主要介紹PIVOT運算符的操作,以及如何實現動態PIVOT的行列轉換。關于UNPIVOT及SQLserver2000下的行列轉換請參照本人的其它文章。一、PIVOT的語法SELECT[non-pivotedcolumn],--optional[additionalnon-pivotedcolumns],--optional[firstpivotedc
系統 2019-08-12 01:53:50 2361
在一個SQLServer數據庫中,可以創建多達兩萬億個表輸入一條CreateTable語句指定下列內容1.包含表的數據庫2.表的所有者3.表名,在同一個數據庫中和同一個所有者下,改表名必須與任何其他基表或視圖不同4.指定1到1024個列5.主鍵約束(可選)6.1到250個Uniquer約束(可選)7.1到253個外鍵約束(可選)8.1個或者多個Check約束,限制插入表中的數據(可選)9.存儲表的文件組(可選)/*創建表*/usedatabaseNameg
系統 2019-08-12 01:52:15 2361
SQLServer匯總數據之計算總計數據雖然ReportinService能夠輕松地計算總計和小計,而無須查詢做額外的工作。但實踐表明,向應用程序提供總計,讓其在窗體或網頁底端顯示它可能很有用。接下來的三個聚合命令將可以提供很好的解決方案。一、Rollup與Cube兩者基本語法一致:groupby....withrollup|cube聚合函數Rollup和Cube在一個獨立的行中計算出小計和總計,并在分組依據列中包含空值,以指出對應的值為總計。Rollup
系統 2019-08-12 01:53:33 2356
一什么是DACSQLServer2005為管理員提供了一種特殊的診斷連接,以供在無法與服務器建立標準連接時使用。即使在SQLServer不響應標準連接請求時,管理員也可以使用這種連接訪問SQLServer,以便執行診斷查詢并解決問題。命令行界面(sqlcmd)通過使用特殊的管理員開關(-A),提供并支持這種專用管理員連接(DAC)。二如何使用DAC登錄到服務器1本機DAC登錄命令行方式下執行sqlcmd-A-Ssql服務器名2遠程DAC登錄1)打開遠程DA
系統 2019-08-12 01:33:25 2356
以前拼接的寫法set@sql='select*fromtablewhere1=1'if(@addDateisnotnull)set@sql=@sql+'andaddDate='+@addDate+''if(@name<>''andisnotnull)set@sql=@sql+'andname='+@name+''exec(@sql)下面是不采用拼接SQL字符串實現多條件查詢的解決方案第一種寫法是感覺代碼有些冗余if(@addDateisnotnull)an
系統 2019-08-12 01:33:49 2355
原文:SQLServer索引和表體系結構(二)非聚集索引概述對于非聚集索引,涉及的信息要比聚集索引更多一些,由于整個篇幅比較大涉及接下來的要寫的“包含列的索引”,“索引碎片”等一些知識點,可能要結合起來閱讀理解起來要更容易一些。非聚集索引和聚集索引一樣都是B-樹結構,但是非聚集索引不改變數據的存儲方式,所以一個表允許建多個非聚集索引;非聚集索引的葉層是由索引頁而不是由數據頁組成,索引行包含索引鍵值和指向表數據存儲位置的行定位器,既可以使用聚集索引來為表或視
系統 2019-08-12 01:33:33 2355
一、深入淺出理解索引結構實際上,您可以把索引理解為一種特殊的目錄。微軟的SQLSERVER提供了兩種索引:聚集索引(clusteredindex,也稱聚類索引、簇集索引)和非聚集索引(nonclusteredindex,也稱非聚類索引、非簇集索引)。下面,我們舉例來說明一下聚集索引和非聚集索引的區別:其實,我們的漢語字典的正文本身就是一個聚集索引。比如,我們要查“安”字,就會很自然地翻開字典的前幾頁,因為“安”的拼音是“an”,而按照拼音排序漢字的字典是以
系統 2019-08-12 01:32:56 2354
原文:人人都是DBA(VI)SQLServer事務日志SQLServer的數據庫引擎通過事務服務(TransactionServices)提供事務的ACID屬性支持。ACID屬性包括:原子性(Atomicity)一致性(Consistency)隔離性(Isolation)持久性(Durability)事務日志(TransactionLog)事務日志(TransactionLog)存儲的是對數據庫所做的更改信息,讓SQLServer有機會恢復數據庫。而恢復(
系統 2019-08-12 01:53:10 2353
SQLServer2008中SQL應用系列--目錄索引非對稱密鑰包含數據庫級的內部公鑰和私鑰,它可以用來加密和解密SQLServer數據庫中的數據,它可以從外部文件或程序集中導入,也可以在SQLServer數據庫中生成。它不像證書,不可以備份到文件。這意味著一旦在SQLServer中創建了它,沒有非常簡單的方法在其他用戶數據庫中重用相同的密鑰。非對稱密鑰對于數據庫加密屬于高安全選項,因而需要更多的SQLServer資源。我們看一組例子:示例一、創建非對稱密
系統 2019-08-29 23:18:37 2351
在SQLServer中默認對大小寫是不敏感的,例如fname='peter'和fname='PETER'結果是一樣的。但有時候用戶會要求區分大小寫,如驗證密碼等。這種情況下的處理辦法就是在字段后加上collateChinese_PRC_CS_AS_WS如:select*fromHRS_EMPLOYEEwhereEMPLOYEE_NAME='admin'ANDPASSWORDcollateChinese_PRC_CS_AS_WS='hongli'是否區分大小
系統 2019-08-12 01:32:44 2351
1.差異備份的還原不備份結尾日志的情況下還原數據創建差異備份的放在我們已經在前面一篇博客SQLServer的備份中提到了,這里我們不再贅述,下面我們給出差異備份與還原的T-SQL方法,代碼如下:--創建備份設備EXECsp_addumpdevice'disk','MyAdvWorks_1','d:\backup\MyAdvWorks_1.bak';EXECsp_addumpdevice'disk','MyAdvWorks_diff1','d:\backup
系統 2019-08-12 01:32:30 2351
用openrowset連接遠程SQL或插入數據--如果只是臨時訪問,可以直接用openrowset--查詢示例select*fromopenrowset('SQLOLEDB','sql服務器名';'用戶名';'密碼',數據庫名.dbo.表名)--導入示例select*into表fromopenrowset('SQLOLEDB','sql服務器名';'用戶名';'密碼',數據庫名.dbo.表名)--創建鏈接服務器execsp_addlinkedserver'
系統 2019-08-12 01:55:16 2350