當前位置:首頁 » 編程語言 » sqlserversql原理

sqlserversql原理

發布時間: 2022-03-15 01:30:05

『壹』 sql server中的架構是什麼意思

在sqlserver 2005中,可能大家在工作或學習的時候會經常發現這樣一些問題,你使用一個賬戶在資料庫中創建了一張表,卻發現你自己創建的表卻沒有修改和查詢的許可權,這是一件很郁悶的事情,在sqlserver2000中卻不存在這樣的問題,那為什麼在2005中會出現這樣的事情,這樣的設置可以帶來哪些好處?其實導致這一問題的原因主要在於2005中多了一個新的概念—架構。
首先我們來看一下msdn中對架構的定義:架構(Schema)是形成單個命名空間的資料庫實體的集合。命名空間是一個集合,其中每個元素的名稱都是唯一的。在這里,我們可以將架構看成一個存放資料庫中對象的一個容器。
架構實際上在sqlserver2000中就已經存在,當我們使用查詢分析器去查詢一個表的時候,一個完整的表的名稱應該包括伺服器名.資料庫名.用戶名.對象名,而在sqlserver2005中一個表的完全限定名稱應該為伺服器名.資料庫名.架構名.對象名
在2000中,假如有一個賬戶tt在test資料庫中創建了一張表table1的時候,在伺服器上對查詢的語句應為select * from test.tt.table1,也就是說,在sqlserver 2000中一張表所屬的架構默認就是表的創建者的登錄名稱,用戶可以和修改他所創建的所有資料庫對象。但在2005中已經將用戶和其創建對象所屬架構的關聯取消了,而加入了一個全新的架構體系,這樣做的優點主要在於下面幾個方面:
1. 多個用戶可以通過角色(role)或組(Windows groups)成員關系擁有同一個架構。
2. 刪除資料庫用戶變得極為簡單。
3. 共享預設架構使得開發人員可以為特定的應用程序創建特定的架構來存放對象,這比僅使用管理員架構(DBO schema)要好。
4. 在架構和架構所包含的對象上設置許可權(permissions)比以前的版本擁有更高的可管理性。
5. 區分不同業務處理需要的對象,例如,我們可以把公共的表設置成pub的架構,把銷售相關的設置為sales,這樣管理和訪問起來更容易.

『貳』 SQL Server的作用是什麼 干什麼用的 為什麼會用到

1,SQL Server 是Microsoft 公司推出的關系型資料庫管理系統。具有使用方便可伸縮性好與相關軟體集成程度高等優點,可跨越從運行Microsoft Windows 98 的膝上型電腦到運行Microsoft Windows 2012 的大型多處理器的伺服器等多種平台使用。

2,程序數據處理 能期貯存於內存..關機,數據丟失,必須要數據進行物理存放,即存放硬碟...
資料庫便能建立數據邏輯,並數據存放物理文件..移,拷貝其環境電腦使用....數據才持久化。

『叄』 SQL Server的優點是什麼

1、加強的T-SQL (事務處理SQL )

T-SQL 天生就是基於集合的關系型資料庫管理系統編程語言,可以提供高性能的數據訪問。現在,它與許多新的特性相結合,包括通過同時使用TRY和CTACH來進行錯誤處理,可以在語句中返回一個結果集的通用表表達式(CTEs),以及通過PIVOT 和UNPIVOT命令將列轉化為行和將列轉化為行的能力。

2、CLR(Common Language Runtime,通用語言運行時)

SQL Server 2005中的第二個主要的增強特性就是整合了符合.NET規范的語言 ,例如C#, ASP.NET 或者是可以構建對象(存儲過程,觸發器,函數等)的 VB.NET。這一點讓你可以在資料庫管理系統中執行.NET代碼以充分利用.NET功能。它有望在SQL Server 2000環境中取代擴展的存儲過程,同時還擴展了傳統關系型引擎功能。

3、服務代理(Service Broker)

服務代理處理的是以鬆散方式進行聯系的發送者和接收者之間的消息。一個消息被發送、處理和回答,完成整個事務。這大大擴展了數據驅動應用程序的性能,以符合工作流或者客戶業務需求。

4、數據加密

SQL Server 2000沒有用來在表自身加密數據的有文檔記載的或者公共支持的函數。企業需要依賴第三方產品來滿足這個需求。SQL Server 2005自身帶有支持對用戶自定義資料庫中存儲的數據進行加密的功能。

5、SMTP郵件

在SQL Server 2000中直接發送郵件是可能的,但是很復雜。在SQL Server 2005中,微軟通過合並SMTP郵件提高了自身的郵件性能。SQL Server從此跟Outlook說「bye-bye」!

6、HTTP終端

你可以很輕松地通過一個簡單的T-SQL 語句使一個對象可以在網際網路上被訪問,從而創建一個HTTP終端。這允許從網際網路上呼叫一個簡單的對象來獲取需要的數據。

7、多活動結果集(Multiple Active Result Sets ,簡稱MARS)

多活動結果集允許從單個的客戶端到資料庫保持一條持久的連接,以便在每個連接上擁有超過一個的活動請求。這是一個主要的性能改善,它允許開發人員讓用戶在使用SQL Server工作的時候擁有新的能力。例如,它允許多個查詢,或者一個查詢的同時輸入數據。底線就是一個客戶端連接可以同時擁有多個活動的進程。

8、專用管理員連接

如果所有的內容都出錯了,那麼只能關閉SQL Server服務或者按下電源鍵。專用管理員連接結束了這種狀況。這個功能允許資料庫管理員對SQL Server發起單個診斷連接,即使是伺服器正在出現問題。

9、SQL Server綜合服務(SSIS)

SSIS已經作為主要的ETL(抽取、傳輸和載入)工作替代了DTS(數據傳輸服務),並且隨著SQL Server免費發布。這個工具,從SQL Server 2000開始被完全重新編寫,現在已經擁有了很大程度的靈活性,來滿足復雜的數據移動需求。

10、資料庫鏡像

我並沒有指望這個功能會在11月份的RTM 中隨著SQL Server 2005一起發布,但是我認為這個特性具有很大的潛力。資料庫鏡像是本地高可用性能力的擴展。所有,仍然在對更多的細節進行調整……那麼現在,祝福吧。

還有兩項技術不能在SQL Server 2005的前十列表中遺漏的是它的分析服務和報告服務。雖然SQL Server 2005沒有介紹其中的任何一項,但是將它們整合進了SQL Server綜合服務之中,以求微軟的核心商務智能套件的完美。這些技術對於商務智能的成功至關重要。學習新的特性,以及企業如何在實際項目中實現它。

『肆』 請教sqlserver代理服務的原理和作用

本地實例。無論您選擇哪種身份驗證,帳戶都必須是 sysadmin 固定伺服器角色的成員。可用身份驗

『伍』 sqlserver select 問題


select identity(int,1,1) time(創建遞增列), 其他列1,其他列2 into #t (創建臨時表t,#類似關鍵字) from 表名 order by time desc

select * from #t where time = 5
原理:將結果集重新排列,time列存儲的就是排序後的列號,所以需要第五個,只要在where子句中寫time = 5就可以了。
給分呀嘿嘿
為了分,給你貼個圖
select identity(int,1,1) as(得有as) rownum , branchname,fatherid into #tmp from News_Branch order by id desc

select * from #tmp where rownum = 5

『陸』 什麼事SQL Server代理服務其作用是什麼

SQL Server Agent代理服務,是sql server的一個標准服務,作用是代理執行所有sql的自動化任務,以及資料庫事務性復制等無人值守任務。
這個服務在默認安裝情況下是停止狀態,需要手動啟動,或改為自動運動,否則sql的自動化任務都不會執行的,還要注意服務的啟動帳戶

『柒』 SQL SERVER 索引的工作原理

SQL 當一個新表被創建之時,系統將在磁碟中分配一段以8K為單位的連續空間,當欄位的值從內存寫入磁碟時,就在這一既定空間隨機保存,當一個8K用完的時候, SQLS指針會自動分配一個8K的空間。這里,每個8K空間被稱為一個數據頁(Page),又名頁面或數據頁面,並分配從0-7的頁號,每個文件的第0頁記錄引導信息,叫文件頭(File header);每8個數據頁(64K)的組合形成擴展區(Extent),稱為擴展。全部數據頁的組合形成堆(Heap)。
SQLS 規定行不能跨越數據頁,所以,每行記錄的最大數據量只能為8K。這就是char和varchar這兩種字元串類型容量要限制在8K以內的原因,存儲超過 8K的數據應使用text類型,實際上,text類型的欄位值不能直接錄入和保存,它只是存儲一個指針,指向由若干8K的文本數據頁所組成的擴展區,真正的數據正是放在這些數據頁中。
頁面有空間頁面和數據頁面之分。當一個擴展區的8個數據頁中既包含了空間頁面又包括了數據或索引頁面時,稱為混合擴展(Mixed Extent),每張表都以混合擴展開始;反之,稱為一致擴展專門保存數據及索引信息。表被創建之時,SQLS在混合擴展中為其分配至少一個數據頁面,隨著數據量的增長,SQLS可即時在混合擴展中分配出7個頁面,當數據超過8個頁面時,則從一致擴展中分配數據頁面。
空間頁面專門負責數據空間的分配和管理,包括:PFS頁面(Page free space):記錄一個頁面是否已分配、位於混合擴展還是一致擴展以及頁面上還有多少可用空間等信息;GAM頁面(Global allocation map)和SGAM頁面(Secodary global allocation map):用來記錄空閑的擴展或含有空閑頁面的混合擴展的位置。SQLS綜合利用這三種類型的頁面文件
在必要時為數據表創建新空間;數據頁或索引頁則專門保存數據及索引信息,SQLS使用4種類型的數據頁面來管理表或索引:它們是IAM頁、數據頁、文本/圖像頁和索引頁。
在WINDOWS 中,我們對文件執行的每一步操作,在磁碟上的物理位置只有系統(system)才知道;SQL SERVER沿襲了這種工作方式,在插入數據的過程中,不但每個欄位值在數據頁面中的保存位置是隨機的,而且每個數據頁面在「堆」中的排列位置也只有系統(system)才知道。這是為什麼呢?眾所周知,OS 之所以能管理DISK,是因為在系統啟動時首先載入了文件分配表:FAT(File Allocation Table),正是由它管理文件系統並記錄對文件的一切操作,系統才得以正常運行;同理,作為管理系統級的SQL
SERVER,也有這樣一張類似FAT的表存在,它就是索引分布映像頁:IAM(Index Allocation Map)。
IAM的存在,使SQLS對數據表的物理管理有了可能。
IAM 頁從混合擴展中分配,記錄了8個初始頁面的位置和該擴展區的位置,每個IAM頁面能管理512,000個數據頁面,如
果數據量太大,SQLS也可以增加更多的IAM頁,可以位於文件的任何位置。第一個IAM頁被稱為FirstIAM,其中記錄了以
後的IAM頁的位置。
數據頁和文本/圖像頁互反,前者保存非文本/圖像類型的數據,因為它們都不超過8K的容量,後者則只保存超過8K容
量的文本或圖像類型數據。而索引頁顧名思義,保存的是與索引結構相關的數據信息。了解頁面的問題有助我們下
一步准確理解SQLS維護索引的方式,如頁拆分、填充因子等。

二、索引的基本概念
什麼是索引呢?索引是一種特殊類型的資料庫對象,它與表有著密切的聯系。
索引是為檢索而存在的。如一些書籍的末尾就專門附有索引,指明了某個關鍵字在正文中的出現的頁碼位置,方便我們查找,但大多數的書籍只有目錄,目錄不是索引,只是書中內容的排序,並不提供真正的檢索功能。可見建立索引要單獨佔用空間;索引也並不是必須要建立的,它們只是為更好、更快的檢索和定位關鍵字而存在。
再進一步說,我們要在圖書館中查閱圖書,該怎麼辦呢?圖書館的前台有很多叫做索引卡片櫃的小櫃子,裡面分了若乾的類別供我們檢索圖書,比如你可以用書名的筆畫順序或者拼音順序作為查找的依據,你還可以從作者名的筆畫順序或拼音順序去查詢想要的圖書,反正有許多檢索方式,但有一點很明白,書庫中的書並沒有按照這些卡片櫃中的順序排列——雖然理論上可以這樣做,事實上,所有圖書的脊背上都人工的粘貼了一個特定的編號①,它們是以這個順序在排列。索引卡片中並沒有指明這本書擺放在書庫中的第幾個書架的第幾本,僅僅指明了這個特定的編號。管理員則根據這一編號將請求的圖書返回到讀者手中。這是很形象的例子,以下的講解將會反復用到它。
SQLS 在安裝完成之後,安裝程序會自動創建master、model、tempdb等幾個特殊的系統資料庫,其中master是SQLS的
主資料庫,用於保存和管理其它系統資料庫、用戶資料庫以及SQLS的系統信息,它在SQLS中的地位與WINDOWS下的注冊表相當。
master中有一個名為sysindexes的系統表,專門管理索引。SQLS查詢數據表的操作都必須用到它,毫無疑義,它是本文主角之一。查看一張表的索引屬性,可以在查詢分析器中使用以下命令:select * from sysindexes where id=object_id(『tablename』);而要查看錶的索引所佔空間的大小,可以使用系統存儲過程命令:sp_spaceused tablename,其中參數tablename為被索引的表名。

三、平衡樹
如果你通過書後的索引知道了一個關鍵字所在的頁碼,你有可能通過隨機的翻尋,最終到達正確的頁碼。但更科學更快捷的方法是:首先把書翻到大概二分之一的位置,如果要找的頁碼比該頁的頁碼小,就把書向前翻到四分之一處,否則,就把書向後翻到四分之三的地方,依此類推,把書頁續分成更小的部分,直至正確的頁碼。這叫「兩分法」,微軟在官方教程MOC里另有一種說法:叫B樹(B-Tree,Balance Tree),即平衡樹。
一個表索引由若干頁面組成,這些頁面構成了一個樹形結構。B 樹由「根」(root)開始,稱為根級節點,它通過指向另外兩個頁,把一個表的記錄從邏輯上分成兩個部分:「枝」—--非葉級節點(Non-Leaf Level);而非葉級節點又分別指向更小的部分:「葉」——葉級節點(Leaf Level)。根節點、非葉級節點和葉級節點都位於索引頁中,統稱為索引節點,屬於索引頁的范籌。這些「枝」、「葉」最終指向了具體的數據頁(Page)。在根級節點和葉級節點之間的葉又叫數據中間頁。
「根」(root)對應了sysindexes表的Root欄位,其中記載了非葉級節點的物理位置(即指針);非葉級節點位於根
節點和葉節點之間,記載了指向葉級節點的指針;而葉級節點則最終指向數據頁。這就是「平衡樹」。

四、聚集索引和非聚集索引
從形式上而言,索引分為聚集索引(Clustered Indexes)和非聚集索引(NonClustered Indexes)。
聚集索引相當於書籍脊背上那個特定的編號。如果對一張表建立了聚集索引,其索引頁中就包含著建立索引的列的值(下稱索引鍵值),那麼表中的記錄將按照該索引鍵值進行排序。比如,我們如果在「姓名」這一欄位上建立了聚集索引,則表中的記錄將按照姓名進行排列;如果建立了聚集索引的列是數值類型的,那麼記錄將按照該鍵值的數值大小來進行排列。
非聚集索引用於指定數據的邏輯順序,也就是說,表中的數據並沒有按照索引鍵值指定的順序排列,而仍然按照插入記錄時的順序存放。其索引頁中包含著索引鍵值和它所指向該行記錄在數據頁中的物理位置,叫做行定位符(RID:Row ID)。好似書後面的的索引表,索引表中的順序與實際的頁碼順序也是不一致的。而且一本書也許有多個索引。比如主題索引和作者索引。
SQL Server在默認的情況下建立的索引是非聚集索引,由於非聚集索引不對表中的數據進行重組,而只是存儲索引鍵
值並用一個指針指向數據所在的頁面。一個表如果沒有聚集索引時,理論上可以建立249個非聚集索引。每個非聚集索引提供訪問數據的不同排序順序。

『捌』 SQL server 中的@,@@、#,##分別代表什麼

@ 表示局部變數

@@ 表示全局變數

# 表示本地臨時表的名稱,以單個數字元號打頭;它們僅對當前的用戶連接是可見的

## 表示全局臨時表

使用事例如下圖所示:

(8)sqlserversql原理擴展閱讀:

本地臨時表

以一個井號 (#) 開頭的表名。只有在創建本地臨時表連接是才能看得到,連接斷開時臨時表立馬被刪除,也就是到貨本地臨時表為創建它的該鏈接的會話所獨有,或者說局部臨時表是有當前用戶創建的,並且只有當前用戶的會話才可以訪問。

全局臨時表

以兩個井號 (##) 開頭的表名。在所有連接上都能看到全局臨時表,也就是說只要全局臨時表存在,那麼對所有創建用戶的會話後都是可見的。如果在創建全局臨時表的連接斷開前沒有顯式地除去全局臨時表,那麼只能等到其它所有任務都停止引用,這些表才會被刪除。

當創建全局臨時表的連接斷開後,新的任務不能再引用它們,也就是說舊的任務才可以引用。當前的語句一執行完,任務與表之間的關聯即被除去;因此通常情況下,只要創建全局臨時表的連接斷開,全局臨時表也會同時被刪除。

『玖』 SQL SERVER 資料庫到底有什麼具體作用

作用如下:

一、系統表存儲SQL所有的系統信息。

存儲有關資料庫服務中的元數據所謂元數據即(比如數據伺服器有哪些用戶資料庫、資料庫伺服器有哪些登陸賬號,資料庫中都有哪些表,每個表都有哪些欄位 每個資料庫有哪些存儲過程、視圖等等的數據),系統表一般sys開頭。

二、了解資料庫中系統表,可以編寫sql語句或編程的時候用到。

在創建資料庫的時候選判斷資料庫是否存在;創建資料庫中對象(表、視圖、存儲過程、索引等)是否存在,存在返回,不存在則執行創建語句。批量刪除資料庫中對象,比如一次性刪除某個具體資料庫中的所有用戶創建的表、視圖、索引等對象。

三、重要的幾個系統表

Sysxlogins:存在與Master資料庫中,(所有資料庫中用戶和角色),記錄著所有能登陸到Sql server 的帳號。要重啟服務或reconfigure with override,sysdatabases:記錄著當前系統所有的資料庫。只有Master數據中有此系統表。


(9)sqlserversql原理擴展閱讀:

一、資料庫優點:

1、易於維護:都是使用表結構,格式一致;

2、使用方便:SQL語言通用,可用於復雜查詢;

3、復雜操作:支持SQL,可用於一個表以及多個表之間非常復雜的查詢。

二、資料庫缺點:

1、讀寫性能比較差,尤其是海量數據的高效率讀寫;

2、固定的表結構,靈活度稍欠;

3、高並發讀寫需求,傳統關系型資料庫來說,硬碟I/O是一個很大的瓶頸。

熱點內容
kc語言 發布:2025-01-16 09:14:50 瀏覽:544
停車場管理系統c語言 發布:2025-01-16 09:02:35 瀏覽:437
學校宣傳片拍攝腳本 發布:2025-01-16 09:00:50 瀏覽:155
ubuntuphpmcrypt 發布:2025-01-16 08:26:46 瀏覽:429
安卓圖片如何添加蘋果的水墨印 發布:2025-01-16 08:18:12 瀏覽:731
fmp腳本 發布:2025-01-16 08:12:23 瀏覽:231
nagios自定義腳本 發布:2025-01-16 08:09:52 瀏覽:365
安卓為什麼下不了方舟生存進化 發布:2025-01-16 08:02:32 瀏覽:195
如何登錄男朋友的微信密碼 發布:2025-01-16 07:41:14 瀏覽:194
寶駿解壓流程 發布:2025-01-16 07:35:35 瀏覽:2