iT邦幫忙

7

【好文分享】迷思止步!資料庫應用大無限-SQL Server 其實不簡單!

  • 分享至 

  • xImage
  •  

工商服務工商服務,又到了好康妹工商服務兼讀書會時間~

今天的主角是「SQL Server」喔(轉圈圈),一起來看一下嘛(招手)
◆迷思止步!資料庫應用大無限!
SQL Server,其實不簡單!

事實上,企業推動任何應用開發計畫,對於究竟搭配何等資料庫系統,通常並無定見,即使過去長年採用A平台,如今想轉換為B,只要對公司更加有利,都未嘗不可。但在現實環境,資料庫的轉換卻可能橫生阻礙,原因在於部分DBA並不輕易嘗試這番轉變。

若形容資料庫管理員(Database Administration;DBA)是企業e化的重要功臣之一,其實並不為過;主因在於,唯有底層資料庫系統能夠正常運轉,也才能確保上層應用服務得以順利推行,兩者唇齒相依,顯見資料庫確實極為重要。

在此前提下,肩負著資料庫系統安裝與設定、容量規劃、應用架構設計、資料庫物件管理、儲存空間管理、安全管理、備份與復原、效能監控與調優、調度作業、網路管理、可用度暨延展性管理、故障排除等重大使命的DBA,對於企業資料庫系統的選用,自然擁有很大的話語權。

甚至在某些狀況下,單憑部分DBA一人意志,即可發揮「愛之欲之生,恨之欲之死」效果,使得特定的資料庫產品,能夠與企業的應用服務環境長廂左右,至於其他的資料庫產品,那怕功能齊備、性能優異、穩定度高超、價錢又漂亮,公司內部人人皆曰可用,但他老兄硬是獨排眾議,始終被拒於門外。

看似複雜的事物,未必難如登天
探究部分DBA之所以固執己見,道理其實很簡單,即是捍衛既得利益,唯恐他在公司的「存在感」,可能由於資料庫系統的轉換,而變得蕩然無存。

這些DBA很瞭解他個人心路歷程,也藉由過往經驗的累積,知道應該在哪些地方築起門檻,突顯一種艱深晦澀的氛圍,進而連同系統與個人,皆被形塑「無可取代」的刻板印象;意即唯獨這套資料庫系統,可以將關鍵應用任務執行得又快又好,但由於該系統的技術底蘊太深,而它所依附的Unix作業系統,學問又太過艱難,面對這個「生人勿近」的環境,唯獨DBA有能力身涉險境、排除萬難,駕馭這套甚難馴服的複雜系統。

反觀微軟的SQL Server,多數DBA心知肚明,隨著AlwaysOn、ColumnStore等眾多嶄新功能的加入,不管在於穩定性、效能等各個方面,都已非昔日吳下阿蒙,要想支撐企業關鍵應用任務的運行,肯定沒問題。但由於SQL Server進入門檻相對較低,資源取得相對容易,又有相對龐大的生態體系(Eco-system)在背後撐腰,所以企業一旦採用這套系統,若干DBA便擔心無法突顯個人價值,因為隨時都有一缸子好手,可以取自己而代之。

然而這般論述,果真存在不少謬誤之處。首先,某些被部分DBA「奉為神主牌膜拜」的資料庫系統,最困難的地方,乃在於它要被安裝到Unix作業系統的過程;因為Unix可分為多個門派,假設裝載到AIX,所需具備的知識與經驗,肯定與HP-UX、Solaris多所不同,倘若欠缺相關知識與經驗,當然不知從何下手,就會視它為艱深難懂之物。

這些資料庫之所以「難」,只是難在這個地方,其餘部分都還好;因此若干DBA如果僅想以偏概全、突顯身價,就算可以一時奏效,也很難持續得逞,原因是現今資訊太過發達,很難有任何資訊死角,可以一直被隱匿下去。

你真的低估SQL Server了!
其次,Unix-based資料庫系統通常都安裝在昂貴機器,可能光是一條RAM就得要價5~6萬元,致使硬體升級淪為一件「恐怖」的事;所以,它無法像是SQL Server,只要效能變慢,就直接換機器,而必須倚賴DBA實施優化手段。

前述觀點,潛藏了兩個迷思。第一,那些可以安裝在Unix OS的資料庫系統,說到調優,雖然難免有其學習門檻,但絕非難如登天,所以部分DBA不應藉此高估自身功力;第二,導致SQL Server效能弱化的原因,固然可能有很大機會,是與Disk I/O息息相關,看似可憑藉硬體更換而獲致重大改善,但有些效能瓶頸,其實是因為語法不佳所致,如果不解開這個死結,縱使換置性能強大的硬體,也未必能提高系統執行效率。

這也意謂著,DBA可別把SQL Server低估為「一經安裝,爾後可以什麼事都不做」,它依然需要被調優,而且這些優化措施可謂易學難精,不管是Windows作業系統內建的效能監視器,乃至於SQL Server裡頭的DBCC CHECKTABLE、Profiler或DTA,樣樣都得融會貫通,而且只要善用優化技巧,前後改善的幅度相當大。

舉例來說,為了確保交易與交易之間互不干擾,通常企業選擇會在資料庫層面執行隔離性保證、或採用Lock 陳述式,藉以針對資料庫或相關欄進行鎖定,同一時間僅允許一個交易做寫入或讀取。

但以隔離性保證而論,倘若野心太大,想一舉清除Dirty Read、Unrepeatable Reads、Phantom Reads或Lost Updates等所有疑慮,因而採取Serializable最嚴格等級來執行完全鎖定;如此一來,所有交易都得循序排隊,一個接著一個來,難免會對效能構成嚴重衝擊,而且不是更換強大硬體就可以解決的,此時就得考驗DBA的智慧與功力,才能找出最佳的改善之道。

由此可見,作為一個SQL Server資料庫的DBA,光是面對系統慘遭鎖死之現象,其間所蘊含的調優空間,便已十分遼闊,只要做得好,就是個足以發光發熱的舞台,並無身價大減的疑慮。


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
0
player
iT邦大師 1 級 ‧ 2012-11-02 19:17:45

DBA ? 現實中幾乎沒這種專職員工
不論是不是資本額上億的公司
通通都要一兼數職

SQL Server,只要效能變慢,有時也沒辦法直接換機器
有時你必需另外從Windows裝起, 再裝上SQL Server
最後在把DB卸載, 再拿到新機器的SQL Server去掛載

SQL Server常見的問題
1.SQL Server的連線數到達上限 (改設為0, 不設限)
2.db的log超過主機的ram上限, 可能使db鎖死, 無法登入該db (設排程, 定時清空log)
3.SQL Agent 沒有正常工作 (服務跳停止? 要重新啟動)
4.可用實體記憶體耗盡 (避免使用大量資料的 select )
5.區域暫存資料表的存取很慢 (改用動態命名的全域暫存資料表)
....等

看來player大是箇中翹楚
故障排除方面經驗如此豐富

player iT邦大師 1 級 ‧ 2012-11-05 15:36:34 檢舉

故障排除方面經驗? 前幾天還被已經離職3年多的前公司的同事
用msn問我故障排除方面問題
可能的解答都幫忙找給他了
但是我手邊沒有的軟硬體, 也沒辦法幫他測到底是什麼原因造成他的問題

我玩Facebook小遊戲時怎麼就沒幾個人肯幫啊?

0
pojen
iT邦研究生 5 級 ‧ 2012-11-03 10:12:58

SQL Server 每一版都讓我驚艷, 從 2005, 2008 乃至 2012. 每一版都有令人稱羨的進步. 不過遺憾的是版權越來越像 Oracle. 讓我不禁反問我自己省下的版權費是否補足產品間的差異?

luckymei 指出了 2012 最大的賣點, Always On, column store index, vertipaq engine (tabular analysis), 但是相對的, 這些功能有的需要 Windows cluster 的支援, read-only access 與貴松松的 SharePoint Enterprise 才能啓用的 PowerView.

相對的 Oracle 有 Active DG (或者真正 Active-Active cluster, 如 RAC), unified storage 與 timesten + BI Publisher. 說實話 Oracle RAC 只要標準版就有了, 更不用買 OS 組 cluster. unified storage 能允許 read-write access, timesten + BI Publisher 能打翻 PowerView. 單以授權費來說, 我還真是不知道要如何推薦 SQL Server.

對於一個專職的 DBA 來說, 程式設計師個功力直接影響 DBA 的工作量. 好的程式設計師能讓 DBA 輕鬆度日, 而糟糕的設計師只會累死 DBA. M$ 家族容易上手的優點對 DBA 來說是無止境的惡夢.

DBA 不見的身兼數職, 但是多才多藝是必須的. 生產線掛點, 第一個找的大概是 DBA. (亦或是在我工作的經驗中, DBA 通常是第一個上火線處理問題的) 能處理 DB 本身問題的大概只算是入門, 能找出生產線掛點問題的算用過, 能找出資料問題而反推程式問題的算進階, 能讓公司無痛運作的才算出師.

.. 不管 SQL 或是 Oracle 都是好的, 但能打的 DBA 很難找..

player iT邦大師 1 級 ‧ 2012-11-05 16:18:47 檢舉

Oracle 簡單的應用經驗有過
(Oracle上寫預存程序, 預存函數, 或是 MS SQL Server用Link DB去向 Oracle Select資料)

但Oracle我沒裝過, 也沒有它的管理經驗
要收錢的DB還差 IBM DB2 沒玩過

那可能是我運氣不好吧, 接case的人大多是口頭上講講, 設計操作流程與操作畫面的人, 不會寫程式
DBA? 至少我以往的工作經驗, 還真的沒看過專職的DBA
有問題, 得自己想辦法解決

0

這不錯啦
不像我們這種雙手無相關DB證照及經驗的
ERP系統
真是近在咫尺
但卻是碰不得
不過想想也是
ERP可想而知是公司營運的命脈
要是不交給有經驗的DBA
真的是很不妥當的

我要留言

立即登入留言