客戶可以利用很多種第三方應(yīng)用程序、工具。對開發(fā)商來說是很大的支持。而SQL Server卻只能在Windows上運(yùn)行了,這個就顯得比較單調(diào)了,但SQL Sever在Window平臺上的表現(xiàn),和Windows操作系統(tǒng)的整體結(jié)合程度,使用方便性,和Microsoft開發(fā)平臺的整合性都比Oracle強(qiáng)的很多。但Windows操作系統(tǒng)的穩(wěn)定性及可靠性大家是有目共睹的,再說Microsoft公司的策略目標(biāo)是將客戶都鎖定到Windows平臺的環(huán)境當(dāng)中,只有隨著Windows性能的改善,SQL Server才能進(jìn)一步提高。從操作平臺這點(diǎn)上Oracle是完全優(yōu)勝于SQL Server的了。 從資料上可以看到,Oracle的安全認(rèn)證獲得最高認(rèn)證級別的ISO標(biāo)準(zhǔn)認(rèn)證,而SQL Server并沒有獲得什么安全認(rèn)證。這方面證明了Oracle的安全性是高于SQL Server的。 購買一個產(chǎn)品,首先考慮的當(dāng)然是產(chǎn)品的性能了,當(dāng)考慮性能的同時當(dāng)然少不了究竟要花多少錢在這產(chǎn)品也是個很關(guān)鍵的問題。要建立并運(yùn)行一個數(shù)據(jù)庫系統(tǒng)。不僅僅包含最初購置軟件、硬件的費(fèi)用,還包含了培訓(xùn)及以后維護(hù)的費(fèi)用。Orcale數(shù)據(jù)庫的價格是遠(yuǎn)比SQL Server數(shù)據(jù)庫要高,為什么Oracle數(shù)據(jù)庫比SQL Server數(shù)據(jù)庫價格上要高出那么多,一方面Oracle的初始花費(fèi)相對較高,特別是在考慮工具軟件的時候,Oracle很多工具軟件需要另外購買,與Microsoft提供免費(fèi)的SQL Server工具軟件相比,Oracle更顯價格的不菲。但由于SQL Server只能在Windows下運(yùn)行的原因,普遍認(rèn)為SQL Server數(shù)據(jù)庫的可靠性是比較差的。Oracle的性能優(yōu)勢體現(xiàn)在他的多用戶上,而SQL Server的性能優(yōu)勢在多用戶上就顯得力不從心了。 操作上SQL Server明顯要比Orcale簡單,如果你用過Java和DOTNET的開發(fā)平臺,區(qū)別的基本就是Oracle和SQL Server不同,Oracle的界面基本是基于Java的,大部分的工具是Dos界面的,甚至SQLPlus也是, SQL Server是跟VB一樣,全圖形界面,很少見到DOS窗口。SQL Server中的企業(yè)管理器給用戶提供一個全圖形界面的集成管理控制臺來集中管理多個服務(wù)器。Oracle也有自己的企業(yè)管理器,而且它的性能在某些方面甚至超過了SQL Server的企業(yè)管理器,但它安裝較為困難。 Orcale數(shù)據(jù)庫和SQL Server數(shù)據(jù)庫那個更快?其實(shí)是一個很難答的問題,因?yàn)榇嬖谠S多不定因素,包括處理類型、數(shù)據(jù)分布以及硬件基礎(chǔ)設(shè)施等。 SQL Server 是一個具備完全Web支持的數(shù)據(jù)庫產(chǎn)品,提供了可擴(kuò)展標(biāo)記語言核心支持以及Internet上和防火墻外進(jìn)行查詢的能力,具有可伸縮性、靈活性、擴(kuò)充性好,而且價格便宜等特點(diǎn),而Oracle則有著可靠安全性,速度比SQL Server快上百倍,但其價格在實(shí)施中卻比SQL Server它高出了幾百倍。 其實(shí)各行業(yè)考慮選擇那種數(shù)據(jù)庫,是由數(shù)據(jù)庫的特點(diǎn)以及根據(jù)自己的業(yè)務(wù)需求和基礎(chǔ)設(shè)施綜合考慮來決定的。
成都創(chuàng)新互聯(lián)主營麥積網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,App定制開發(fā),麥積h5微信小程序開發(fā)搭建,麥積網(wǎng)站營銷推廣歡迎麥積等地區(qū)企業(yè)咨詢
沒法解決!
每日寫入10萬左右,1d=24H=24*60m=24*60*60s=86400s 這才8萬多條記錄,每秒鐘至少寫入一條記錄,這個已經(jīng)不是關(guān)系庫可以承受的了。
你該跟領(lǐng)導(dǎo)說明情況,讓他知道還有個“實(shí)時數(shù)據(jù)庫”,這個才是解決辦法。
如PI、eDNA等實(shí)時庫才是能承受。
別說sql2000性能不好,就算用oracle11r2也不成。
如果非得用關(guān)系庫,那就考慮分表吧。
例如:主鍵一般都是有含義的,如 年份+序號,字母+序號..按照某一規(guī)律進(jìn)行分表,然后將各分表連接做成一個視圖。
1.輸入一個查詢語句看看SQL Server是如何顯示查詢計(jì)劃的吧。
select v.OrderID, v.CustomerID, v.CustomerName, v.OrderDate, v.SumMoney, v.Finished
from OrdersView as v
where v.OrderDate = '2010-12-1' and v.OrderDate '2011-12-1';
其中,OrdersView是一個視圖,其定義如下:
SELECT dbo.Orders.OrderID, dbo.Orders.CustomerID, dbo.Orders.OrderDate,
dbo.Orders.SumMoney, dbo.Orders.Finished,
ISNULL(dbo.Customers.CustomerName, N'') AS CustomerName
FROM dbo.Orders LEFT OUTER JOIN
dbo.Customers ON dbo.Orders.CustomerID = dbo.Customers.CustomerID
對于前一句查詢,SQL Server給出的查詢計(jì)劃如下(點(diǎn)擊工具欄上的【顯示估計(jì)的執(zhí)行計(jì)劃】按鈕):
從這個圖中,我們至少可以得到3個有用的信息:
1. 哪些執(zhí)行步驟花費(fèi)的成本比較高。顯然,最右邊的二個步驟的成本是比較高的。
2. 哪些執(zhí)行步驟產(chǎn)生的數(shù)據(jù)量比較多。對于每個步驟所產(chǎn)生的數(shù)據(jù)量, SQL Server的執(zhí)行計(jì)劃是用【線條粗細(xì)】來表示的,因此也很容易地從分辨出來。
3. 每一步執(zhí)行了什么樣的動作。
對于一個比較慢的查詢來說,我們通常要知道哪些步驟的成本比較高,進(jìn)而,可以嘗試一些改進(jìn)的方法。 一般來說,如果您不能通過:提高硬件性能或者調(diào)整OS,SQL Server的設(shè)置之類的方式來解決問題,那么剩下的可選方法通常也只有以下這些了:
1. 為【scan】這類操作增加相應(yīng)字段的索引。
2. 有時重建索引或許也是有效的,具體情形請參考后文。
3. 調(diào)整語句結(jié)構(gòu),引導(dǎo)SQL Server采用其它的查詢方案去執(zhí)行。
4. 調(diào)整表結(jié)構(gòu)(分表或者分區(qū))。
MS SQL Server:分區(qū)表、分區(qū)索引 詳解
1. 分區(qū)表簡介
使用分區(qū)表的主要目的,是為了改善大型表以及具有各種訪問模式的表的可伸縮性和可管理性。
? 大型表:數(shù)據(jù)量巨大的表。
? 訪問模式:因目的不同,需訪問的不同的數(shù)據(jù)行集,每種目的的訪問可以稱之為一種訪問模式。
分區(qū)一方面可以將數(shù)據(jù)分為更小、更易管理的部分,為提高性能起到一定的作用;另一方面,對于如果具有多個CPU的系統(tǒng),分區(qū)可以是對表的操作通過并行的方式進(jìn)行,這對于提升性能是非常有幫助的。
注意:只能在 SQL Server Enterprise Edition 中創(chuàng)建分區(qū)函數(shù)。只有 SQL Server Enterprise Edition 支持分區(qū)。
如果有時間字段,建議做分區(qū)表,按時間分區(qū),這樣表從物理上是分開的,但是對外還是一張表.
好處有1.原本的代碼結(jié)構(gòu)不用變2.查詢歷史數(shù)據(jù)的時候,速度仍然有保障3.如果建立觸發(fā)器進(jìn)行自動分區(qū),理論上不管再用多少年,都不會再需要重新建表a2了