<del id="nnjnj"></del><track id="nnjnj"></track>

<p id="nnjnj"></p>

<address id="nnjnj"></address>

    <pre id="nnjnj"><pre id="nnjnj"></pre></pre>

      <noframes id="nnjnj"><ruby id="nnjnj"><ruby id="nnjnj"></ruby></ruby>

      • 自動秒收錄
      • 軟件:1973
      • 資訊:57811|
      • 收錄網站:279872|

      IT精英團

      SQL Server合并(刪除)分區的歧義消除

      SQL Server合并(刪除)分區的歧義消除

      瀏覽次數:
      評論次數:
      編輯: 景同
      信息來源: ITPUB
      更新日期: 2022-09-13 21:45:57
      摘要

      一、準備在SQLServer2005版本之后就有了表分區的概念與應用,在分區操作里面有一個叫做合并分區的功能,也被稱為刪除分區。分區所處的文件組和文件是不會被刪除的,只會對數據進行轉移合并。合并分

      • 正文開始
      • 相關閱讀
      • 推薦作品

      一.準備工作

      在SQL Server 2005版之后,引入了表分區的概念和應用。在分區操作中,有一個函數叫合并分區,也叫刪除分區。分區所在的文件組和文件不會被刪除,只會傳輸和合并數據。合并分區時要注意IO問題。

      分區合并的常見場景:發現某個分區數據很少,為了管理方便,考慮合并分區。需要統計和四則運算的時候也可以考慮合并分區。在這種情況下,合并和分區的性能沒有可比性。如果童鞋對環境感興趣,可以提供這方面的數據。

      如何查看分區方案:在SQL Server Management Studio中,選擇數據庫-存儲-分區方案,右鍵單擊分區方案名稱,在彈出菜單-創建至-新建查詢編輯器窗口中選擇“將分區方案腳本化為”。

      第二,測試

      (1)環境:用RANGERIGHT作為配分函數的關鍵字,表示這個值一開始就屬于右邊界。

      RANGERIGHTFORVALUES('20100101 ',' 20110101 ',' 20120101 ',' 20130101 ')

      文件組

      劃分

      值范圍

      [FG1]

      一個

      [去年,2010年1月1日]

      [FG2]

      2

      [2010/01/01,2011/01/01)

      [FG3]

      [2011/01/01,2012/01/01)

      [FG4]

      [2012/01/01,2013/01/01)

      [主要]

      [2013/01/01,未來的一年]

      1.測試1:刪除配分函數的第一個值。

      當使用MERGERANGE('20100101 ')時,合并的分區相當于:

      RANGERIGHTFORVALUES('20110101 ',' 20120101 ',' 20130101 ')

      文件組

      劃分

      p>

      取值范圍

      [FG?]

      1

      [過去某年, 2011/01/01)

      [FG3]

      2

      [2011/01/01, 2012/01/01)

      [FG4]

      3

      [2012/01/01, 2013/01/01)

      [PRIMARY]

      4

      [2013/01/01, 未來某年)

      問題:是[FG1]合并到[FG2],還是[FG2]合并到[FG1]呢?

      測試結果:[FG2]合并到[FG1]

      2.     測試二:刪除分區函數的第二個值

      當使用MERGE RANGE ('20110101'),合并后分區就相當于:

      RANGE RIGHT FOR VALUES ('20100101','20120101','20130101') 

      文件組

      分區

      取值范圍

      [FG1]

      1

      [過去某年, 2010/01/01)

      [FG?]

      2

      [2010/01/01, 2012/01/01)

      [FG4]

      3

      [2012/01/01, 2013/01/01)

      [PRIMARY]

      4

      [2013/01/01, 未來某年)

      問題:是[FG2]合并到[FG3],還是[FG3]合并到[FG2]呢?

      測試結果:[FG3]合并到[FG2]

      3.     測試三:刪除分區函數的最后一個值

      當使用MERGE RANGE ('20130101'),合并后分區就相當于:

      RANGE RIGHT FOR VALUES ('20100101','20110101','20120101')

      文件組

      分區

      取值范圍

      [FG1]

      1

      [過去某年, 2010/01/01)

      [FG2]

      2

      [2010/01/01, 2011/01/01)

      [FG3]

      3

      [2011/01/01, 2012/01/01)

      [?]

      4

      [2012/01/01, 未來某年)

      問題:是[FG4]合并到[PRIMARY],還是[PRIMARY]合并到[FG4]呢?

      測試結果:[PRIMARY]合并到[FG4]

       

      (二)  環境:使用RANGE LEFT作為分區函數的關鍵字,它表示這個值開始是屬于左邊界的。

      RANGE LEFT FOR VALUES ('20100101','20110101','20120101','20130101')

      文件組

      分區

      取值范圍

      [FG1]

      1

      (過去某年, 2010/01/01]

      [FG2]

      2

      (2010/01/01, 2011/01/01]

      [FG3]

      3

      (2011/01/01, 2012/01/01]

      [FG4]

      4

      (2012/01/01, 2013/01/01]

      [PRIMARY]

      5

      (2013/01/01, 未來某年]

      1.     測試四:刪除分區函數的第一個值

      當使用MERGE RANGE ('20100101'),合并后分區就相當于:

      RANGE LEFT FOR VALUES ('20110101','20120101','20130101') 

      文件組

      分區

      取值范圍

      [FG?]

      1

      (過去某年, 2011/01/01]

      [FG3]

      2

      (2011/01/01, 2012/01/01]

      [FG4]

      3

      (2012/01/01, 2013/01/01]

      [PRIMARY]

      4

      (2013/01/01, 未來某年]

      問題:是[FG1]合并到[FG2],還是[FG2]合并到[FG1]呢?

      測試結果:[FG1]合并到[FG2]

      2.     測試五:刪除分區函數的第二個值

      當使用MERGE RANGE ('20110101'),合并后分區就相當于:

      RANGE LEFT FOR VALUES ('20100101','20120101','20130101') 

      文件組

      分區

      取值范圍

      [FG1]

      1

      (過去某年, 2010/01/01]

      [FG?]

      2

      (2010/01/01, 2012/01/01]

      [FG4]

      3

      (2012/01/01, 2013/01/01]

      [PRIMARY]

      4

      (2013/01/01, 未來某年]

      問題:是[FG2]合并到[FG3],還是[FG3]合并到[FG2]呢?

      測試結果:[FG2]合并到[FG3]

      3.     測試六:刪除分區函數的最后一個值

      當使用MERGE RANGE ('20130101'),合并后分區就相當于:

      RANGE LEFT FOR VALUES ('20100101','20110101','20120101') 

      文件組

      分區

      取值范圍

      [FG1]

      1

      (過去某年, 2010/01/01]

      [FG2]

      2

      (2010/01/01, 2011/01/01]

      [FG3]

      3

      (2011/01/01, 2012/01/01]

      [?]

      4

      (2012/01/01, 未來某年]

      問題:是[FG4]合并到[PRIMARY],還是[PRIMARY]合并到[FG4]呢?

      測試結果:[FG4]合并到[PRIMARY]

       

      三、結論

      下圖中形象的表述了邊界值(boundary_value)所處的分區,符號“()”表示不包含,“[]”表示包含,一個圓圈帶叉圖標表示需要刪除這個邊界值,當使用MERGE RANGE的時候,數據庫就需要刪除一個分區的數據,并把數據合并到另外一個分區中。你能從下圖看出結論嗎?

      (圖1:分區函數為右邊界)

      (圖2:分區函數為左邊界)

      結論:刪除的這個邊界值(boundary_value)屬于哪個分區,那么就會刪除這個分區,再向鄰近的分區合并。鄰近的意思是以這個邊界值為臨界點的兩個分區。圖1與圖2就很好的解釋了這個結論。

       

      四、參考文獻

      實戰分區表:SQL Server 2k5&2k8系列(三)

      SQL Server 2005中的分區表(四):刪除(合并)一個分區

      合并分區 

      本文來源https://www.cnblogs.com/gaizai/archive/2010/11/05/1870071.html

      標簽:分區 并到 組分
      《2022 分布式數據庫發展趨勢研究報告》的解釋
      ? 上一篇 2022-09-13
      淺談SQL Server中統計對查詢的影響
      下一篇 ? 2022-09-13
      • 如何在Ubuntu中保留文件系統并備份當前開發板鏡像
        0閱讀 0條評論 個贊
        在Ubuntu保留文件系統或者說備份當前開發板鏡像的需求在不斷增加。比如Ubuntu文件系統需要安裝庫文件的話直接使用apt-get工具就可以下載,但由于需要下載的核心板較多,比較費時間,這時需要將安……
      • 國產核心板全志T507助力消防系統升級
        0閱讀 0條評論 個贊
        9月16日下午,位于湖南長沙市區內的中國電信大樓發生火災,建筑高度218米,現場濃煙滾滾,數十層樓體燃燒劇烈。消防救援人員趕到現場后很快將火勢控制住,目前大樓火勢已被撲滅,所幸未發現人員傷亡。湖南電信……
      • 教大家如何處理Spring Boot易流中的用戶和群體!
        0閱讀 0條評論 個贊
        1.準備工作2.用戶操作2.1添加用戶2.2修改用戶2.3刪除用戶2.4查詢用戶3.組操作3.1添加組3.2修改組3.3刪除組3.4查詢組4.查看表詳情雖然說我們在實際開發中,……
      • 從PG15開始WAL壓縮優化
        0閱讀 0條評論 個贊
        PG15傳聞中的超級令人激動的功能大多數跳票了,年初我也寫過一個關于PG15新功能跳票的文章。PG15BETA已經發出幾個月了,似乎PG15里令人激動人心的功能不多,不過從長長的新功能列表里,……
      • 深入了解美團葉子發射器開源方案
        0閱讀 0條評論 個贊
        大家好,我是樹哥。之前我們有聊過「如何設計一個分布式ID發號器」,其中有講過4種解決方案,分別是:UUID類雪花算法數據庫自增主鍵Redis原子自增美團以第2、3種解決方案為基礎,開發出……
      發表評論 共有條評論
      用戶名: 密碼:
      驗證碼: 匿名發表
      • 網純原生實現時間單位定時任務執行,未依賴第三方組件
        0閱讀 0條評論 個贊
        常用的定時任務組件有Quartz.Net和Hangfire兩種,這兩種是使用人數比較多的定時任務組件,個人以前也是使用的Hangfire,慢慢的發現自己想要的其實只是一個能夠根據Cron……
      • 當我們在并行學習的時候 我們到底在學習什么?
        0閱讀 0條評論 個贊
        大家好,我是鲏。前段時間,星球里一位朋友問我:魚皮,高并發項目牽扯的知識有哪些?之前看到的一個回答:既要解決性能的問題又要考慮業務完整性,還有網絡資源、服務器資源等,我不太能理解,希望魚皮細說。我就簡……
      • Java精進-手寫持久層框架
        0閱讀 0條評論 個贊
        前言本文適合有一定java基礎的同學,通過自定義持久層框架,可以更加清楚常用的mybatis等開源框架的原理。JDBC操作回顧及問題分析學習java的同學一定避免不了接觸過jdbc,讓我們來回顧下初學……
      • SQL Server索引的功能
        0閱讀 0條評論 個贊
        一、深入淺出理解索引結構實際上,您可以把索引理解為一種特殊的目錄。微軟的SQLSERVER提供了兩種索引:聚集索引(clusteredindex,也稱聚類索引、簇集索引)和非聚集索引(nonclu……
      • 從PG15開始WAL壓縮優化
        0閱讀 0條評論 個贊
        PG15傳聞中的超級令人激動的功能大多數跳票了,年初我也寫過一個關于PG15新功能跳票的文章。PG15BETA已經發出幾個月了,似乎PG15里令人激動人心的功能不多,不過從長長的新功能列表里,……
      • 教你如何構建JAVA分布式爬蟲
        0閱讀 0條評論 個贊
        在工作中,我們經常需要去獲取一些數據,但是這些數據可能需要從第三方平臺才可以獲取到。這個時候,爬蟲系統就可以幫助我們來完成這些事情。提到爬蟲系統,很多人都會想到使用python。但實際上,語言只……
      • 當老板讓我從Java8升級到Java11時
        4閱讀 0條評論 個贊
        老板讓我把一個項目從Java8遷移到Java11,我該怎么辦呢?最簡單的辦法,當然是直接強行升級,遇到一個錯就改一個錯,別看它low,但是對于一個小型且非核心的項目來說,已經足夠了。當然,……
      • 記錄一次數據庫滿CPU的故障排除過程
        0閱讀 0條評論 個贊
        1前言近期隨著數據量的增長,數據庫CPU使用率100%報警頻繁起來。第一個想到的就是慢Sql,我們對未合理運用索引的表加入索引后,問題依然沒有得到解決,深入排查時,發現在orderbyida……
      • 數據倉庫及其維度(層次)建模(ODS DWD DWS DWT ADS)
        0閱讀 0條評論 個贊
        一.數倉及其維度1.什么是數倉?數據倉庫,簡稱數倉,(DataWarehouse)。從邏輯上理解,數據庫和數倉沒有區別,都是通過數據庫軟件實現存放數據的地方,只不過從數據量來……
      • 舉例說明庫伯內特公司的豆莢核心資源
        3閱讀 0條評論 個贊
        目錄一、Pod定義二、Pod入門yaml描述文件三、共享NetworkNamespace四、共享PID五、容器生命周期六、初始化容器6.1、簡介6.2、與普通容器的區別6.3、實驗七、Pod探針7.1……
      • 金牛座入門 MVC微服務框架開發教程
        0閱讀 0條評論 個贊
        前言:對于Taurus.MVC的微服務的注冊中心而言:什么樣的應用中心,有權利注冊服務?什么樣的網關中心,有權利調取服務列表?在默認沒有進行相關配置時,只要引用Taurus.MVC的框架,都擁有該權限……
      • 深入理解Redis數據結構-字典
        0閱讀 0條評論 個贊
        字典,又稱為符號表、關聯數組或映射,是一種用于保存鍵值對的抽象數據結構。在字典中,一個鍵可以和一個值進行關聯,這些關聯的鍵和值稱為鍵值對。鍵值對中鍵是唯一的,我們可以根據鍵key通過映射查找或者更新對……
      • 卡夫卡數據丟失問題優化總結及重復消費原因分析(二)
        0閱讀 0條評論 個贊
        .css-1yuhvjn{margin-top:16px;}.css-3jt6os.FileLinkCard{-webkit-align-items:center;-webkit-box-align……
      • 如何使用helm優雅地安裝prometheus-operator并監控k8s集群微服務
        0閱讀 0條評論 個贊
        前言:隨著云原生概念盛行,對于容器、服務、節點以及集群的監控變得越來越重要。Prometheus作為Kubernetes監控的事實標準,有著強大的功能和良好的生態。但是它不支持分布式,不支持數據……
      • 如何保持Mysql和Redis數據一致
        0閱讀 0條評論 個贊
        先闡明一下Mysql和Redis的關系:Mysql是數據庫,用來持久化數據,一定程度上保證數據的可靠性;Redis是用來當緩存,用來提升數據訪問的性能。關于如何保證Mysql和Redis中的數據一致(……
      • 基于 網絡6的輕量級Webapi框架緊固點
        0閱讀 0條評論 個贊
        大家好,我是等天黑。FastEndpoints是一個基于.NET6開發的開源webapi框架,它可以很好地替代.NETMinimalAPIs和MVC,專門為開發效率而生,帶來了全……
      • SQLServer自動化運維系列監控磁盤剩余空間和SQLServer錯誤日志(PowerShell)
        0閱讀 0條評論 個贊
        需求描述在我們的生產環境中,大部分情況下需要有自己的運維體制,包括自己健康狀態的檢測等。如果發生異常,需要提前預警的,通知形式一般為發郵件告知。在所有的自檢流程中最基礎的一個就是磁盤剩余空間檢測。作為……
      • Java開發學習(29)——Maven依賴轉移、可選依賴和排除依賴分析
        0閱讀 0條評論 個贊
        現在的項目一般是拆分成一個個獨立的模塊,當在其他項目中想要使用獨立出來的這些模塊,只需要在其pom.xml使用標簽來進行jar包的引入即可。其實就是依賴……
      • 用戶自定義注釋 AOP實現的日志保存(數據庫) 所有代碼都可以粘貼復制
        0閱讀 0條評論 個贊
        前言1,在一些特定的場景我們往往需要看一下接口的入參,特別是跨系統的接口調用(下發,推送),這個時候的接口入參就很重要,我們保存入參入庫,如果出問題就可以馬上定位是上游還是下游的問題(方便扯皮)2,還……
      • MySQL中的存儲過程(詳細文章)
        0閱讀 0條評論 個贊
        文章目錄概述優點缺點MySQL存儲過程的定義存儲過程的基本語句格式存儲過程的使用定義一個存儲過程定義一個有參數的存儲過程定義一個流程控制語句IFELSE定義一個條件控制語句CASE定義一個循環語……
      最近發布資訊
      更多
      警花高潮嗷嗷叫
      <del id="nnjnj"></del><track id="nnjnj"></track>

      <p id="nnjnj"></p>

      <address id="nnjnj"></address>

        <pre id="nnjnj"><pre id="nnjnj"></pre></pre>

          <noframes id="nnjnj"><ruby id="nnjnj"><ruby id="nnjnj"></ruby></ruby>