當前位置:首頁 » 雲伺服器 » 伺服器並行怎麼操作

伺服器並行怎麼操作

發布時間: 2023-08-27 07:07:45

1. 並行查詢讓SQL Server加速運行

並行查詢其優勢就是可以通過多個線程來處理查詢作業 從而提高查詢的效率 SQL Server資料庫為具有多個CPU的山帆或資料庫伺服器提供並行查詢的功能 以優化查詢作業的性能 也就是說 只要資料庫伺服器有多個CPU 則資料庫系統就可以使用多個操作系統進程並行執行查詢操作 來加速完成查詢作業

一 並行查詢三步走

並行查詢作業在資料庫中 主要經過三個步驟

首先 資料庫會判斷是否需要進行並行查詢 在資料庫中有一個查詢優化器 會對SQL語句進行優化 然後資料庫才會去執行查詢語句 而這個查詢器在對SQL語句進行查詢優化時 其中一個動作就是判斷是否需要對SQL語句進行查詢優化 也就是說 並不是所有的SQL查詢語句都可以從並行查詢中獲取收益 如果查詢優化器認為查詢語句可以從並行查詢中獲取收益的話 則就會將交換運算符插入到查詢執行計劃中 為並行查詢做准備 故哪些語句需要採用並行查詢 哪些不需要 這不用資料庫管理員關心 資料庫查詢優化器會幫管理員作出這個決定 資料庫管理員需要清楚的是 在哪些情況下 資料庫SQL優化器會認為不宜採用並行查詢 通常情況下 只要滿足以下條件的任何一個 則就不會執行並行查詢 一是對於特定的查詢 查詢優化器認為串列查詢執行計劃要快於任何可能的並行執行計劃;二是查詢的串列執行成本並不高 不需要進行並行查詢;三是查詢中包含無法並行運行的標量運算符或者關系運算符 若從資料庫管理員的角度講 第三個條件對我們具有最大的影響 當資料庫預計未來可能利用並行查詢來提高資料庫性能時 則在資料庫設計時 就需要注意避免使用那些無法在並行查詢功能中使用的運算符 因為某些關系運算符或者邏輯運算符可能會要求查詢計劃一定要在串列模式中進行 或者部分需要在串列模式下進行 如此的話 查詢優化器就不會利用並行查詢功能來提高查詢語句的性能 這是資料庫管理員在資料庫設計時必須要考慮到的一個細節問題

其次 確定並行的進程數 當查詢優化器在查詢語句中插入交叉運算符之後 資料庫就會執行並行查詢 並行查轎凳詢在執行計劃時可以使用多個線程 此時 就又遇到了一個問題 資料庫會把這個查詢作業分成幾個進程操作呢?此時 資料庫管理員就需要知道上什麼叫做並行度 其實 在處理並行查詢的時候 數據需要知道最大可使用的進程與實際使用的進程 而最大可使用的進程就叫做並行度 這個並行度的值是在伺服器級別中進行設置 也可以通過系統存儲過程來進行修改 但是 最大可使用進程數不一定等於實際是用進程數 實際是用進程數是資料庫在查詢計劃執行時初始化的時候確定的 也就是說 這不用資料庫管理員去額外的設定 資料庫系統會自動根據計劃的復雜程度來確定合理的進程數目 當然其實際採用的進程數不能夠超過並行度 即最大可以使用的進程數

最後執行查詢 當以上內容確定好之後 資料庫就會執行具體的查詢語句 在這一步中 需要注意一個問題 資料庫管理員還可以在查詢語句中指定MAXDOP查詢提示來修改這個進度值 也就是說 如果某個查詢作業資料庫管理員認為可能會耗時比較久 就可以為這個查詢作業設置比較大的進度值 當利用MAXDOP查詢提示設置這個並行進度值之後 它會覆蓋預先設置的默認值 從而實現針對單個查詢語句設置額外的進度值 以提高某些特殊查詢作業的性能

二 並行查詢中需要注意的內容

注意點一逗伍 需要注意硬體方面的限制

並行查詢是資料庫提高查詢性能的一個有力舉措 不過其往往受到比較大的約束 如上面提高的一些基於成本考慮之外 還有一些硬性的限制 如通常情況下 只有在資料庫伺服器有多個微處理器(CPU )的情況下資料庫才會考慮執行並行查詢 也就是受 只有具有多個CPU的計算機才能夠使用並行查詢 這是一個硬性的限制條件 另外在查詢計劃執行過程中 資料庫還會判斷當時是否有足夠多的線程可以使用 每個查詢操作都要求一定的線程數才能夠執行;而且執行並行計劃比執行串列計劃需要更多的線程 所需要的線程數也會隨著並行度的提高而提高 如果在並行計劃執行的時候 當時資料庫伺服器沒有足夠的線程讓並行計劃使用的話 資料庫引擎就會自動減少並行度 甚至會放棄並行查詢而改為串列計劃 所以說 資料庫是否能夠執行並行查詢 要受到其硬體的限制 為此 如果企業真的需要通過並行查詢來提高資料庫性能的話 則管理員就需要根據情況來調整硬體配置

注意點二 不建議對所有查詢都使用並行查詢

通常情況下 筆者認為最好只對大型表的連接查詢 大量數據的聚合操作 大型結果集的重復排序等等操作才應用並行查詢的功能 如果在這些操作上執行並行查詢的話 那麼其改善資料庫性能的效果是非常明顯的 相反 如果對於簡單查詢執行並行查詢的話 可能執行並行查詢所需要的額外協調工作會大於其潛在的性能提升 所以 資料庫管理員在確定是否需要執行並行查詢功能的話 需要慎重 筆者的建議是 在資料庫伺服器級別上 最好不要設置並行查詢 即把並行度設置為 或者一個比較小的值 然後對於一些特殊的查詢操作 利用MAXDOP查詢提示來設置最大的可使用進程數 如此的話 可能會更加的合理 如果有時候資料庫管理員不知道是否需要採用並行查詢功能的話 則可以通過資料庫自帶的統計功能進行判斷 為了區別並行查詢計劃到底有沒有從並行查詢中受益 資料庫引擎可以將執行查詢的估計開銷與並行查詢的開銷閥值進行比較 並行計劃只有對需時較長的查詢通常更加有益;因為其性能優勢將抵消初始化 同步和終止並行計劃所需的額外時間開銷

注意點三 資料庫會根據查詢所涉及到的行數來判斷是否要並行查詢

上面談到 最好對大型表的連接查詢 大量數據的聚合操作 大型結果集的重復排序等等操作才應用並行查詢的功能 因為只有如此 並行查詢帶來的收益才會超過其付出的代價 但是 並不是說連接查詢 聚合操作 排序等作業都適合採用並行查詢 當資料庫在考慮並行查詢計劃的時候 查詢優化器還會去確定所涉及到的行數 如果所涉及到的行數台少 則將不會考慮執行並行查詢計劃 而會採用串列方式執行查詢語句 如此的話 可以避免因為啟動 分發 協調的開銷大大超過並行執行作業所帶來的收益 這本來是一個不錯的設計 但是也會給資料庫管理員帶來一定的麻煩 如現在資料庫管理員想要測試並行查詢到底可以在多大程度上影響查詢操作 就有點麻煩 因為其有數據量的限制 如果資料庫管理員需要進行這個測試 還不得不先在資料庫系統中導入足夠多的數據才行 這就限制了資料庫管理員的測試操作 不過話說回來 這個機制仍然是不錯的 因為資料庫管理員不用去考慮 當資料庫規模到多大的時候採用並行查詢

注意點四 同一個操作在不同時候會採用不同的進程數

lishixin/Article/program/SQLServer/201311/22469

2. 如何處理大量數據並發操作

處理大量數據並發操作可以採用如下幾種方法:

1.使用緩存:使用程序直接保存到內存中。或者使用緩存框架: 用一個特定的類型值來保存,以區別空數據和未緩存的兩種狀態。

2.資料庫優化:表結構優化;SQL語句優化,語法優化和處理邏輯優化;分區;分表;索引優化;使用存儲過程代替直接操作。

3.分離活躍數據:可以分為活躍用戶和不活躍用戶。

4.批量讀取和延遲修改: 高並發情況可以將多個查詢請求合並到一個。高並發且頻繁修改的可以暫存緩存中。

5.讀寫分離: 資料庫伺服器配置多個,配置主從資料庫。寫用主資料庫,讀用從資料庫。

6.分布式資料庫: 將不同的表存放到不同的資料庫中,然後再放到不同的伺服器中。

7.NoSql和Hadoop: NoSql,not only SQL。沒有關系型資料庫那麼多限制,比較靈活高效。Hadoop,將一個表中的數據分層多塊,保存到多個節點(分布式)。每一塊數據都有多個節點保存(集群)。集群可以並行處理相同的數據,還可以保證數據的完整性。

拓展資料:

大數據(big data),指無法在一定時間范圍內用常規軟體工具進行捕捉、管理和處理的數據集合,是需要新處理模式才能具有更強的決策力、洞察發現力和流程優化能力的海量、高增長率和多樣化的信息資產。

在維克托·邁爾-舍恩伯格及肯尼斯·庫克耶編寫的《大數據時代》中大數據指不用隨機分析法(抽樣調查)這樣捷徑,而採用所有數據進行分析處理。大數據的5V特點(IBM提出):Volume(大量)、Velocity(高速)、Variety(多樣)、Value(低價值密度)、Veracity(真實性)。

3. 兩台win7電腦如何實現並行運算

.首先確定需要的硬體組件和資源。您將需要一個頭節點,至少有十幾個相同的計算節點,乙太網交換機,配電裝置和機架。確定的電力需求,散熱和空間要求。又決定您要為您的專用網路IP地址,命名為節點,您要安裝的軟體包,你想要什麼樣的技術提供的並行計算能力(更多關於這個版本)。雖然硬體不能隨意下載,所有軟體中列出的是免費的,大部分都是開源的。 (2)/建立計算節點。您將需要組裝的計算節點,或獲得預構建伺服器。更多的計算節點,建立更強大的超級計算機!選擇一台伺服器機箱,空間,冷卻和能源效率最大化。或者,你可以用十幾個這樣用的,過時的伺服器 - 其整體將超過其部分的總和還為您節省了相當大的一次性現金。為整個系統一起玩的很好,所有的處理器,網路適配器和主板應該是相同的。當然,不要忘了內存和存儲每個節點和至少一個光碟驅動器的頭節點。
3.伺服器安裝到機架上。從底部開始,機架不是最重。你需要一個朋友來幫助你這一點 - 高密度伺服器可以非常重,並引導他們到機架上的導軌有困難的。
4.以上的伺服器機箱中安裝的乙太網交換機。利用這一時刻對交換機進行配置:允許9000個位元組的巨型幀大小,設置IP地址的靜態地址,您在步驟1中決定,並關閉不必要的路由協議,如SMTP偵聽。
5.安裝的PDU(電源分配單元)。您可能需要根據您的節點可能需要多少電流在最大負載,220伏的高性能計算。
6.一切都安裝,就可以開始配置過程。 Linux是事實上的OS為HPC集群不僅是科學計算的理想環境,但將它安裝到數百甚至上千個節點,它不花費一件事。試想一下,所有這些節點上安裝Windows的成本會是多少呢?首先安裝最新版本的主板BIOS和固件,這應該是相同的所有節點上。您的首選的Linux發行版,安裝在每個節點上,一個圖形用戶界面的頭節點。受歡迎的選擇,包括的CentOS,OpenSUSE中,紅帽企業Linux和SLES。本文作者強烈建議用Rocks集群分布。除了安裝所有必要的工具,計算群集功能,岩石許多情況下本身的節點,速度非常快,使用PXE引導和Red Hat的腳開始「程序」分派「使用一個很好的方法。
7.安裝的消息傳遞介面,資源管理器,以及其他必要的庫。如果你沒有安裝岩石在上一步中,你將不得不手動設置必要的軟體,以使並行計算的機制。首先,你將需要一台攜帶型的bash的管理系統,如Torque資源管理器,它允許你分手,並分發到多台機器的任務。對扭矩的毛伊島集群調度完成安裝。接下來,您將需要安裝的消息傳遞介面,獨立的計算節點上的各個進程必須共享相同的數據。 OpenMP是一個沒有腦子。不要忘了多線程數學庫和編譯器來構建並行計算程序。我提到,你應該只安裝岩石?
8.網路計算節點。頭節點的計算節點,而這又必須將返回的結果,以及發送消息給對方發送計算任務。速度越快越好。接線吧!使用專用的乙太網網路連接在集群中的所有節點。頭節點也可以作為一個NFS,PXE,DHCP,TFTP,NTP伺服器通過乙太網網路。從公共網路,確保廣播數據包不與其他網路的干擾,在你的區域網,就必須將這個網路。
9.測試群集。過去的事情做之前,你可能要釋放所有用戶的計算能力是測試它的性能。的HPL(高性能Lynpack)的基準測量的集群的運算速度是一個受歡迎的選擇。您需要將自己從源碼編譯所有可能的優化編譯器提供你所選擇的體系結構。當然,你必須從源代碼編譯為您的平台與所有可能的優化選項。例如,如果使用的是AMD的CPU,編譯與Open64的與0fast優化水平。 TOP500在世界上最快的500台超級計算機集群的比較,比較的結果!

提示
使用Ganglia監控節點上的計算負載。 IPMI可以提供的KVM-over-IP,遠程電源循環,多一個大型的集群管理的一件輕而易舉的事。對於非常高的網路速度,到InfiniBand網路介面。准備,但支付較高的價格。

熱點內容
s3哪個配置性價比高 發布:2025-03-17 13:06:09 瀏覽:317
氣體壓縮能量 發布:2025-03-17 13:00:16 瀏覽:75
壓縮油19 發布:2025-03-17 12:25:29 瀏覽:855
linux上網代理 發布:2025-03-17 12:23:56 瀏覽:359
c是高級語言嗎 發布:2025-03-17 12:16:31 瀏覽:523
python泛型 發布:2025-03-17 12:15:01 瀏覽:482
編程貓被盜 發布:2025-03-17 12:02:18 瀏覽:131
海關鎖密碼箱如何設置新密碼 發布:2025-03-17 11:53:50 瀏覽:560
農業卡號的密碼在哪裡改 發布:2025-03-17 11:48:57 瀏覽:966
楊瀾超級訪問 發布:2025-03-17 11:47:17 瀏覽:237