sqlserver全文檢索
『壹』 sqlserver 怎麼查詢iops高的原因
QL Server資料庫查詢速度慢的原因有很多,常見的有以下幾種:
1、沒有索引或者沒有用到索引(這是查詢慢最常見的問題,是程序設計的缺陷)
2、I/O吞吐量小,形成了瓶頸效應。
3、沒有創建計算列導致查詢不優化。
SQL Server查詢速度慢原因4、內存不足
5、網路速度慢
6、查詢出的數據量過大(可以採用多次查詢,其他的方法降低數據量)
7、鎖或者死鎖(這也是查詢慢最常見的問題,是程序設計的缺陷)
8、sp_lock,sp_who,活動的用戶查看,原因是讀寫競爭資源。
9、返回了不必要的行和列
10、查詢語句不好,沒有優化
SQL Server查詢速度慢可以通過以下方法來優化查詢 :
1、把數據、日誌、索引放到不同的I/O設備上,增加讀取速度,以前可以將Tempdb應放在RAID0上,SQL2000不在支持。數據量(尺寸)越大,提高I/O越重要。
2、縱向、橫向分割表,減少表的尺寸(sp_spaceuse)
3、升級硬體
4、根據查詢條件,建立索引,優化索引、優化訪問方式,限制結果集的數據量。注喚蔽意填充因子要適當(最好是使用默認值0)。索引應該盡量小,使用位元組數小的列建索引好(參照索引的創建),不要對有限的幾個值的欄位建單一索引如性別欄位。
5、提高網速。
6、擴大伺服器的內存,Windows 2000和SQL server 2000能支持4-8G的內存。
配置虛擬內存:虛擬內存大小應基於計算機上並發運行的服務進行配置。運行 Microsoft SQL Server? 2000時,可考慮將虛擬內存大小設置為計算機中安裝的物理內存的1.5倍。如果另外安裝了全文檢索功能,並打算運行Microsoft搜索服務以便執行全文索引和查詢,可考慮:將虛擬內存大小配歲腔置為至少是計算機中安裝的物理內存的3倍。將SQL Server max server memory伺服器配置選項配置為物理內存的1.5倍(虛擬內存大小設置的一半)。
7、增加伺服器CPU個數;但是必須 明白並行處理串列處理更需要資源例如內存。使用並行還是串列程是MsSQL自動評估選擇的。單個任務分解成多個任務,就可以在處理器上運行。例如耽擱查詢 的排序、連接、掃描和GROUP BY字句同時執行,SQL SERVER根據系統的負載情況決定最優的並行等級,復雜的需要消耗大量的CPU的查詢最適合並行處理。但是更新操作UPDATE,INSERT, DELETE還不能並行處理。
8、如果是使用like進行查詢的話,簡單的使用index是不行的,但是全文索引,耗空間。 like ''a%'' 使用索引 like ''%a'' 不使用索引用 like ''%a%'' 查詢時,查詢耗時和欄位值總長度成正比,所以不能用CHAR類型,而是VARCHAR。對於欄位的值很長的建全文索引。
9、DB Server 和APPLication Server 分離;和雀州OLTP和OLAP分離
10、分布式分區視圖可用於實現資料庫伺服器聯合體。
聯合體是一組分開管理的伺服器,但它們相互協作分擔系統的處理負荷。這種通過分區數據形成資料庫伺服器聯合體的機制能夠擴大一組伺服器,以支持大型的多層 Web 站點的處理需要。有關更多信息,參見設計聯合資料庫伺服器。(參照SQL幫助文件''分區視圖'')
a、在實現分區視圖之前,必須先水平分區表
『貳』 關於sql sever 的系統存儲過程
存儲過程分為三類:
系統存儲過程:(System stored Procere)sp_開頭,為SQLSERVER內置存儲過程。
擴展存儲過程:(Extended stored Procere),也就是外掛程序,用於擴展SQLSERVER的功能,以sp_或者xp_開頭,以DLL的形式單獨存在。
(系統存儲過程和擴展存儲過程都是在master資料庫中。sp_開頭的可是全局的,任何一個資料庫都可以直接調用的。)
系統存儲過程主要分為以下幾類:
目錄存儲過程,例如:
sp_columns 返回當前環境中可查詢的指定表或視圖的列信息。
sp_tables 返回當前環境下可查詢的對象的列表(任何可出現在 FROM 子句中的對象)。
sp_stored_proceres 返回當前環境中的存儲過程列表。
復制類存儲過程,例如:
sp_addarticle 創建項目並將其添加到發布中。此存儲過程在發布伺服器的發布資料庫上執行。
安全管理類存儲過程,例如:
sp_addrole 在當前資料庫創建新的 Microsoft�0�3 SQL Server�6�4 角色。
sp_password 添加或更改 Microsoft�0�3 SQL Server�6�4 登錄的密碼。
分布式查詢存儲過程,例如:
sp_foreignkeys 返回引用主鍵的外鍵,這些主鍵在鏈接伺服器中的表上。
sp_primarykeys 返回指定遠程表的主鍵列,每個鍵列佔一行。
擴展存儲過程:
xp_sendmail 向指定的收件人發送郵件和查詢結果集附件。
xp_startmail 啟動 SQL 郵件客戶端會話。
xp_cmdshell 以操作系統命令行解釋器的方式執行給定的命令字元串,並以文本行方式返回任何輸出。授予非管理用戶執行xp_cmdshell 的許可權。
用戶定義的存儲過程:(User-defined stored Procere),這個就是用戶在具體的資料庫中自己定義的,名字最好不要以sp_和xp_開頭,防止混亂。
注意事項:
1.在存儲過程中,有些建立對象的語句是不可使用的:create default,create trigger,create procere,create view,create rule.
2.在同一資料庫中,不同的所有者可以建立相同名稱的對象名。例如:a.sample,b.sample,c.sample三個數據表可以同時存在。如果存儲過程中未指明對象的所有者(例如存儲過程中的語句select * from sample,這句中的sample沒有指明所有者),在執行的過程中默認的所有者查找順序是:相應的存儲過程的建立者->相應資料庫的所有者。如果這個查找過程中沒有把所有者確定下來,系統就要報錯。
(這里我額外插一句:如果需要嚴密的數據操作,在任何操作中盡量加上所有者,例如leijun.sample)
3.在存儲過程名稱前邊添加#或者##,所建立的存儲過程則是「臨時存儲過程「(#是局部臨時存儲過程,##是全局臨時存儲過程)。
『叄』 SQL Server 服務管理器 這個東西是干什麼用的
管理SQL Server服務和資料庫的,如果是在資料庫伺服器的本機,建議不要刪除。
如果是客戶機,你有不是資料庫管理員,哪就可以刪除。
方法:執行sqlserver的安裝程序,會提示安裝、修復、刪除等選項,選擇安裝,
進入後選擇自定義模式,在自定義窗口中可以將管理組件類、以及幫助等(凡是你不需要的)都不選擇(不能刪除客戶端,我想你至少要使用sqlserver的驅動訪問資料庫吧!),下一步就可以了。
SQL Server 服務管理器
用於啟動、停止和暫停伺服器上的 Microsoft SQL Server™ 2000 組件。這些組件在 Microsoft Windows NT 或 Microsoft Windows 2000 上作為服務運行,並可在 Microsoft Windows 95 和 Microsoft Windows 98 上作為單獨的可執行程序運行:
◆SQL Server服務
實現 SQL Server 資料庫引擎。在計算機上運行的每個 SQL Server 實例,電腦系統都有一個 SQL Server 服務。
◆SQL Server 代理服務
實現運行調度的 SQL Server 管理任務的代理程序。在計算機上運行的每個 SQL Server 實例都有一個 SQL Server 代理服務。
◆Microsoft 搜索服務(僅用於 Windows NT 和 Windows 2000)
實現全文本檢索引擎。不論計算機上有多少個 SQL Server 實例,真正運行的都只有一個服務。
◆MSDTC 服務(僅用於 Windows NT 和 Windows 2000)
管理分布式事務。計算機上創建了多個SQL Server 實例,都只有一個服務。
◆MSSQLServerOlAPService 服務(僅用於 Windows NT 和 Windows 2000)
實現 SQL Server 2000 Analysis Services。不論計算機上有多少個 SQL Server 實例,都只有一個服務。
SQL Server 服務管理器
SQL Server 服務管理器是一個任務欄應用程序,它遵從任務欄應用程序的標准行為。當 SQL Server 服務管理器圖標最小化時,將顯示在任務欄右邊的任務欄時鍾區域。若要獲得包含 SQL Server 服務管理器所支持的所有任務的菜單,請右擊任務欄項。
『肆』 Sql Server 2008 必須開啟哪些服務
只需要開啟SQL Server (MSSQLSERVER)。
Sql Server 2008所有服務如下:
SQL Active Directory Helper 服務支持與 Active Directory 的集成
SQL Full-text Filter Daemon Launcher (MSSQLSERVER)用於啟動全文篩選器後台程序進程的服務,該進程將為 SQL Server 全文搜索執行文檔篩選和斷字。禁用此服務將使 SQL Server 的全文搜索功能不可用。
SQL Server (MSSQLSERVER)提供數據的存儲、處理和受控訪問,並提供快速的事務處理。
SQL Server (SQLEXPRESS)提供數據的存儲、處理和受控訪問,並提供快速的事務處理。
SQL Server Browser將 SQL Server 連接信息提供給客戶端計算機。
SQL Server VSS Writer提供用於通過 Windows VSS 基礎結構備份/還原 Microsoft SQL Server 的介面。
SQL Server 代理 (MSSQLSERVER)執行作業、監視 SQL Server、激發警報,以及允許自動執行某些管理任務。
SQL Server 代理 (SQLEXPRESS)執行作業、監視 SQL Server、激發警報,以及允許自動執行某些管理任務。
(4)sqlserver全文檢索擴展閱讀:
SQL Server 2008在2008年8月6日正式發表,並且同時發布SQL Server 2008 Express版本,研發代號為「Katmai」,作為SQL Server 2005的功能強化版本,其主要的新功能與特色有:
1、以原則為主(Policy-Based)的管理基礎架構。
2、與Windows Server 2008、Windows Vista的Data Collector技術集成的Performance Data Collection。
3、可以經由管理者設置以調整運行資源的資源調節器(Resource Governer)。
4、可預測的查詢性能。
5、數據壓縮能力。
6、DDL(數據定義語言)審核能力。
7、透通式數據加密(Transparent Data Encryption)
8、記錄檔數據流壓縮(Log Stream Compression)
9、ADO.NET Object Services的直接支持,這代表SQL Server 2008可支持LINQ和ADO.NET Entity Framework。
10、本地的DATE和TIME分割的數據類型,並且支持時間位移的DATETIMEOFFSET和更精確的DATETIME2數據類型。
11、FILESTREAM數據類型:將大型二進制數據存到NTFS文件系統中(即不直接存在資料庫中)。
12、稀疏欄位(Sparse Column)的支持,可節省因為NULL值所佔據的存儲空間。
13、空間數據類型集,包含geometry(平面或Euclidean(平面地球)數據)以及geography(橢圓體(圓形地球)數據),分別可存儲平面和立面型的數據,有助於GIS型系統的開發。
14、變更數據收集與捕捉(Change Data Capture)。
15、寬數據表(Wide table),可以容納最高30,000個欄位,但必須要配合Sparse欄位使用。
16、hierarchyid數據類型,可以允許存儲層次結構化的數據。
17、MERGE語句,可根據與來源數據表聯結的結果,在目標數據表上運行插入、更新或刪除作業,其功能與ADO.NET中的DataSet.Merge()方法類似。
18、Report Server應用程序嵌入能力。
19、Reporting Service可支持窗體驗證。
20、預測分析能力(SSAS)。
21、數據表型參數與變數,可以在變數或參數中使用table的類型。
SQL Server 2008比起以往版本存在以下優勢:
(1)保護資料庫查詢
(2)在伺服器的管理操作上花費更少的時間
(3)增加應用程序穩定性
(4)系統執行性能最優化與預測功能
『伍』 sqlserver全文索引的原理
建立全文索引中有兩項非常重要,一個是如何對文本進行分詞,一是建立索引的數據結構。分詞的方法基本上是二元分詞法、最大匹配法和統計方法。索引的數據結構基本上採用倒排索引的結構。
分詞的好壞關繫到查詢的准確程度和生成的索引的大小。在中文分詞發展中,早期經常使用分詞方式是二元分詞法,該方法的基本原理是將包含中文的句子進行二元分割,不考慮單詞含義,只對二元單詞進行索引。因此該方法所分出的單詞數量較多,從而產生的索引數量巨大,查詢中會將無用的數據檢索出來,好處是演算法簡單不會漏掉檢索的數據。之後又發展出最大匹配分詞方法,該方法又分為正向最大分詞和逆向最大分詞。其原理和查字典類似,對常用單詞生成一個詞典,分析句子的過程中最大的匹配字典中的單詞,從而將句子拆分為有意義的單詞鏈。最大匹配法中正向分詞方法對偏正式詞語的分辨容易產生錯誤,比如「首飾和服裝」會將「和服」作為單詞分出。達夢資料庫採用的是改進的逆向最大分詞方法,該分詞方法較正向正確率有所提高。最為復雜的是通過統計方式進行分詞的方法。該方法採用隱式馬爾科夫鏈,也就是後一個單詞出現的概率依靠於前一個單詞出現的概率,最後統計所有單詞出現的概率的最大為分詞的依據。這個方法對新名詞和地名的識別要遠遠高於最大匹配法,准確度隨著取樣文本的數量的增大而提高。
二元分詞方法和統計方法是不依賴於詞典的,而最大匹配法分詞方法是依賴於詞典的,詞典的內容決定分詞結構的好壞。
全文檢索的索引被稱為倒排索引,之所以成為倒排索引,是因為將每一個單詞作為索引項,根據該索引項查找包含該單詞的文本。因此,索引都是單詞和唯一記錄文本的標示是一對多的關系。將索引單詞排序,根據排序後的單詞定位包含該單詞的文本。
步驟1)讀取一整條句子到變數str中,轉到步驟2
步驟2)從句子的尾端讀取1個字到變數word中,轉到步驟3
步驟3)在字典查找word中保存的單詞。如果存在則保存word,轉到步驟4,否則轉到步驟5)
步驟4)如果是字典中最大單詞或者超過最大單詞數(認定為新詞),從句尾去掉該單詞,返回步驟2
步驟5)讀取前一個字到word中,構成新單詞,轉到步驟3)
詞庫的內存數據結構和詞庫中單詞的匹配演算法
內存中單詞採用層次結構保存
假設字典中有如下的單詞:中國 中華民國 國家 人民 民主
在內存中按照如下方式按層排列,其中每一個方塊代表一個字,箭頭所指向為該單詞的前一個字