回覆列表
  • 1 # 廖紫涵002

     一般人們會選擇縱向擴充套件(scale up)SQL Server資料庫,而非橫向擴充套件(scale out)。縱向擴充套件很容易:增加硬體、處理能力、記憶體、磁碟和提高網路速度。其原理就是仍然在一臺伺服器上執行資料庫,但是增加了伺服器的處理能力和資源。這種方法很昂貴,但是非常簡單直接。  採用雲技術  有時候,最簡單的方法就是將問題交由其他人處理。微軟的Windows Azure雲服務包含一個基於雲的SQL Server版本SQL Azure.這在技術上並非真正意義的橫向擴充套件,因為它是一種無限縱向擴充套件方法。所以,轉移到Azure並不需要對您的應用程式進行大改動。實際上,您只需要將應用程式遷移到SQL Azure,然後支付儲存、處理和資料傳輸費用。這些都是收費服務,但是您不需要再擔心擴充套件問題。  複製  SQL Server原生複製是一種支援橫向擴充套件的解決方案,與資料庫的建立和使用方式有關。您只需要在多臺伺服器上覆制多個數據庫副本,然後將不同的使用者指向各臺伺服器。這種方法通常最適合支援地理位置分散的使用者,如亞洲辦公室的使用者使用伺服器1,而北美辦公室的使用者則使用伺服器2.每一臺伺服器都擁有完整的資料副本,並且會複製夥伴伺服器的所有修改。  這種方法不支援自動負載均衡,並且最適合用在使用者固定只使用一部分資料的情況。換而言之,如果亞洲使用者只需要編輯與他們辦公室相關的資料--例如,主要是亞洲客戶的資訊,那麼複製能夠保證其他資料庫副本也包含這些記錄的副本。如果所有使用者都需要編輯完整的資料集,那麼複製就變得有一些複雜,因為SQL Server必須在支援使用者的同時,編輯位於不同伺服器的同一個資料。  SQL Server的合併複製能夠處理這種衝突,但是您必須進行一些自定義合併程式設計,這意味著您的開發人員必須開發一些演算法,確定使用者併發訪問資料時誰獲取編輯許可權。客戶應用程式也需要增加程式設計;使它們不僅向資料庫提交資料修改,也要迴圈檢查這些修改是否被其他併發使用者重寫。使用者也需要重新培訓,因為客戶端應用程式可能會提示:"您正在程式設計的資料已經發生變化。您需要重新檢查,確定您的編輯是否仍然有效。"  聯合資料庫  另一個重要的橫向擴充套件方法是聯合。透過這種方法,您可以將資料庫劃分到多臺伺服器上。垂直分割將同一個表的不同行儲存到不同的伺服器上。同時,地理分割槽是最常用的方法:將所有亞洲資料記錄儲存在一臺伺服器上,而所有歐洲資料則儲存在另一臺伺服器上。這種方法不同於整體複製:每一個位置的伺服器都不具備完整的資料庫,而只擁有該位置的資料。透過實現一種SQL Server分散式分割槽檢視而形成完整的表,使用者就可以瀏覽一個"聯合"或組合的資料檢視。水平分割則將表的欄位儲存在不同的伺服器上,因此各臺伺服器一起協作構成組合的表。  這些資料庫的建立並不簡單,其中涉及一種整體操作。您需要掌握關於資料訪問和使用的詳細資訊,才能夠實現正確的部署。此外,您還需要一位SQL Server資料庫架構師,他應該全面理解這些技術,分析您的業務情況,並且能夠正確地建立這些元件。  在一些情況中,實現這種橫向擴充套件對客戶端應用程式的改動很小。對於本身在設計上大量使用檢視和儲存過程進行資料訪問的應用程式,更是如此。因為這些元素只是是在後臺抽象,在客戶端上不會發生變化。但是,這些應用程式並不常見;通常,實現橫向擴充套件都需要修改客戶端程式,使客戶端與後臺結構分離。  橫向擴充套件並不簡單  毫無疑問,實現SQL Server橫向擴充套件非常複雜--這也是Azure等雲資料庫系統流行的原因之一。此外,有一些第三方供應商能夠幫助實現橫向擴充套件技術,而不需要完全依賴SQL Server的原生特性。您需要自己下功夫瞭解這些方法,理解資料訪問和使用方法,這樣才能夠選擇最符合您要求的方法。

  • 2 # dadazhu2

    方法/步驟

    新建工作簿,新增資料集

    新建工作薄,新增資料集ds1,SQL語句為SELECT * FROM [銷量]。

    製作交叉表

    設計好表樣後,將資料列拖入對應單元格:

    縱表頭:地區與銷售員預設縱向擴充套件實現從上到下分組;

    橫表頭:將產品型別與產品設定為從左到右擴充套件,讓產品橫向分組,實現橫表頭;

    資料:根據父子格的概念,銷量會以銷售員為左父格,產品為上父格,自動匹配出銷售員與產品對應的銷量。

    預覽即可看到上圖交叉表。

  • 中秋節和大豐收的關聯?
  • 我的電腦桌面上的圖示有顏色,桌面清除掉?