SQL 創建分區表

来源:https://www.cnblogs.com/xuxingyue0929/archive/2018/11/05/9909262.html
-Advertisement-
Play Games

(以項目中實際使用的GNSS庫為例) 背景:數據量巨大,定時創建月表存放數據,月表中數據存放在不同的文件組中來提高查詢效率 一、創建資料庫,添加文件組 除了邏輯文件和物理文件的分離之外,SQL Server使用文件組還有一個優勢,那就是分散IO負載,其實現的原理是: 對於單分區表,數據只能存到一個文 ...


(以項目中實際使用的GNSS庫為例) 背景:數據量巨大,定時創建月表存放數據,月表中數據存放在不同的文件組中來提高查詢效率   一、創建資料庫,添加文件組 除了邏輯文件和物理文件的分離之外,SQL Server使用文件組還有一個優勢,那就是分散IO負載,其實現的原理是:
  • 對於單分區表,數據只能存到一個文件組中。如果把文件組內的數據文件分佈在不同的物理硬碟上,那麼SQL Server能同時從不同的物理硬碟上讀寫數據,把IO負載分散到不同的硬碟上。
  • 對於多分區表,每個分區使用一個文件組,把不同的數據子集存儲在不同的磁碟上,SQL Server在讀寫某一個分組的數據時,能夠調用不同的硬碟IO。
這兩種方式,其本質上,都是使每個硬碟均攤系統負載,提高IO性能。
CREATE DATABASE [GNSS]
 CONTAINMENT = NONE
 ON  PRIMARY 
( NAME = N'GNSS', FILENAME = N'D:\Databases\GNSS\GNSS.mdf' , SIZE = 6144KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB ), 
 FILEGROUP [GNSSFG0]  DEFAULT
( NAME = N'GNSSFile0', FILENAME = N'D:\Databases\GNSS\GNSSFile0.ndf' , SIZE = 287744KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB ), 
 FILEGROUP [GNSSFG1] 
( NAME = N'GNSSFile1', FILENAME = N'D:\Databases\GNSS\GNSSFile1.ndf' , SIZE = 778240KB , MAXSIZE = UNLIMITED, FILEGROWTH = 51200KB ), 
 FILEGROUP [GNSSFG10] 
( NAME = N'GNSSFile10', FILENAME = N'D:\Databases\GNSS\GNSSFile10.ndf' , SIZE = 10240KB , MAXSIZE = UNLIMITED, FILEGROWTH = 51200KB ), 
 FILEGROUP [GNSSFG11] 
( NAME = N'GNSSFile11', FILENAME = N'D:\Databases\GNSS\GNSSFile11.ndf' , SIZE = 10240KB , MAXSIZE = UNLIMITED, FILEGROWTH = 51200KB ), 
 FILEGROUP [GNSSFG12] 
( NAME = N'GNSSFile12', FILENAME = N'D:\Databases\GNSS\GNSSFile12.ndf' , SIZE = 10240KB , MAXSIZE = UNLIMITED, FILEGROWTH = 51200KB ), 
 FILEGROUP [GNSSFG13] 
( NAME = N'GNSSFile13', FILENAME = N'D:\Databases\GNSS\GNSSFile13.ndf' , SIZE = 10240KB , MAXSIZE = UNLIMITED, FILEGROWTH = 51200KB ), 
 FILEGROUP [GNSSFG14] 
( NAME = N'GNSSFile14', FILENAME = N'D:\Databases\GNSS\GNSSFile14.ndf' , SIZE = 10240KB , MAXSIZE = UNLIMITED, FILEGROWTH = 51200KB ), 
 FILEGROUP [GNSSFG15] 
( NAME = N'GNSSFile15', FILENAME = N'D:\Databases\GNSS\GNSSFile15.ndf' , SIZE = 10240KB , MAXSIZE = UNLIMITED, FILEGROWTH = 51200KB ), 
 FILEGROUP [GNSSFG16] 
( NAME = N'GNSSFile16', FILENAME = N'D:\Databases\GNSS\GNSSFile16.ndf' , SIZE = 10240KB , MAXSIZE = UNLIMITED, FILEGROWTH = 51200KB ), 
 FILEGROUP [GNSSFG17] 
( NAME = N'GNSSFile17', FILENAME = N'D:\Databases\GNSS\GNSSFile17.ndf' , SIZE = 10240KB , MAXSIZE = UNLIMITED, FILEGROWTH = 51200KB ), 
 FILEGROUP [GNSSFG18] 
( NAME = N'GNSSFile18', FILENAME = N'D:\Databases\GNSS\GNSSFile18.ndf' , SIZE = 10240KB , MAXSIZE = UNLIMITED, FILEGROWTH = 51200KB ), 
 FILEGROUP [GNSSFG19] 
( NAME = N'GNSSFile19', FILENAME = N'D:\Databases\GNSS\GNSSFile19.ndf' , SIZE = 10240KB , MAXSIZE = UNLIMITED, FILEGROWTH = 51200KB ), 
 FILEGROUP [GNSSFG2] 
( NAME = N'GNSSFile2', FILENAME = N'D:\Databases\GNSS\GNSSFile2.ndf' , SIZE = 10240KB , MAXSIZE = UNLIMITED, FILEGROWTH = 51200KB ), 
 FILEGROUP [GNSSFG20] 
( NAME = N'GNSSFile20', FILENAME = N'D:\Databases\GNSS\GNSSFile20.ndf' , SIZE = 10240KB , MAXSIZE = UNLIMITED, FILEGROWTH = 51200KB ), 
 FILEGROUP [GNSSFG21] 
( NAME = N'GNSSFile21', FILENAME = N'D:\Databases\GNSS\GNSSFile21.ndf' , SIZE = 10240KB , MAXSIZE = UNLIMITED, FILEGROWTH = 51200KB ), 
 FILEGROUP [GNSSFG22] 
( NAME = N'GNSSFile22', FILENAME = N'D:\Databases\GNSS\GNSSFile22.ndf' , SIZE = 10240KB , MAXSIZE = UNLIMITED, FILEGROWTH = 51200KB ), 
 FILEGROUP [GNSSFG23] 
( NAME = N'GNSSFile23', FILENAME = N'D:\Databases\GNSS\GNSSFile23.ndf' , SIZE = 10240KB , MAXSIZE = UNLIMITED, FILEGROWTH = 51200KB ), 
 FILEGROUP [GNSSFG24] 
( NAME = N'GNSSFile24', FILENAME = N'D:\Databases\GNSS\GNSSFile24.ndf' , SIZE = 10240KB , MAXSIZE = UNLIMITED, FILEGROWTH = 51200KB ), 
 FILEGROUP [GNSSFG25] 
( NAME = N'GNSSFile25', FILENAME = N'D:\Databases\GNSS\GNSSFile25.ndf' , SIZE = 10240KB , MAXSIZE = UNLIMITED, FILEGROWTH = 51200KB ), 
 FILEGROUP [GNSSFG26] 
( NAME = N'GNSSFile26', FILENAME = N'D:\Databases\GNSS\GNSSFile26.ndf' , SIZE = 10240KB , MAXSIZE = UNLIMITED, FILEGROWTH = 51200KB ), 
 FILEGROUP [GNSSFG27] 
( NAME = N'GNSSFile27', FILENAME = N'D:\Databases\GNSS\GNSSFile27.ndf' , SIZE = 10240KB , MAXSIZE = UNLIMITED, FILEGROWTH = 51200KB ), 
 FILEGROUP [GNSSFG28] 
( NAME = N'GNSSFile28', FILENAME = N'D:\Databases\GNSS\GNSSFile28.ndf' , SIZE = 10240KB , MAXSIZE = UNLIMITED, FILEGROWTH = 51200KB ), 
 FILEGROUP [GNSSFG29] 
( NAME = N'GNSSFile29', FILENAME = N'D:\Databases\GNSS\GNSSFile29.ndf' , SIZE = 10240KB , MAXSIZE = UNLIMITED, FILEGROWTH = 51200KB ), 
 FILEGROUP [GNSSFG3] 
( NAME = N'GNSSFile3', FILENAME = N'D:\Databases\GNSS\GNSSFile3.ndf' , SIZE = 10240KB , MAXSIZE = UNLIMITED, FILEGROWTH = 51200KB ), 
 FILEGROUP [GNSSFG30] 
( NAME = N'GNSSFile30', FILENAME = N'D:\Databases\GNSS\GNSSFile30.ndf' , SIZE = 10240KB , MAXSIZE = UNLIMITED, FILEGROWTH = 51200KB ), 
 FILEGROUP [GNSSFG31] 
( NAME = N'GNSSFile31', FILENAME = N'D:\Databases\GNSS\GNSSFile31.ndf' , SIZE = 10240KB , MAXSIZE = UNLIMITED, FILEGROWTH = 51200KB ), 
 FILEGROUP [GNSSFG4] 
( NAME = N'GNSSFile4', FILENAME = N'D:\Databases\GNSS\GNSSFile4.ndf' , SIZE = 10240KB , MAXSIZE = UNLIMITED, FILEGROWTH = 51200KB ), 
 FILEGROUP [GNSSFG5] 
( NAME = N'GNSSFile5', FILENAME = N'D:\Databases\GNSS\GNSSFile5.ndf' , SIZE = 10240KB , MAXSIZE = UNLIMITED, FILEGROWTH = 51200KB ), 
 FILEGROUP [GNSSFG6] 
( NAME = N'GNSSFile6', FILENAME = N'D:\Databases\GNSS\GNSSFile6.ndf' , SIZE = 10240KB , MAXSIZE = UNLIMITED, FILEGROWTH = 51200KB ), 
 FILEGROUP [GNSSFG7] 
( NAME = N'GNSSFile7', FILENAME = N'D:\Databases\GNSS\GNSSFile7.ndf' , SIZE = 10240KB , MAXSIZE = UNLIMITED, FILEGROWTH = 51200KB ), 
 FILEGROUP [GNSSFG8] 
( NAME = N'GNSSFile8', FILENAME = N'D:\Databases\GNSS\GNSSFile8.ndf' , SIZE = 10240KB , MAXSIZE = UNLIMITED, FILEGROWTH = 51200KB ), 
 FILEGROUP [GNSSFG9] 
( NAME = N'GNSSFile9', FILENAME = N'D:\Databases\GNSS\GNSSFile9.ndf' , SIZE = 10240KB , MAXSIZE = UNLIMITED, FILEGROWTH = 51200KB )
 LOG ON 
( NAME = N'GNSS_log', FILENAME = N'D:\Databases\GNSS\GNSS_log.ldf' , SIZE = 10240KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)
View Code  

二、創建分區函數和分區方案

分區函數定義了用於分區的數據邊界,而分區方案指定了符合分區邊界的數據存放在哪個文件組。因此,分區方案中指定的文件組個數應該是比分區函數中指定的邊界數大1的。

USE [GNSS]
GO

/****** Object:  PartitionFunction [PF201808]     ******/
CREATE PARTITION FUNCTION [PF201808](datetime) AS RANGE RIGHT FOR VALUES (N'2018-08-02T00:00:00.000', N'2018-08-03T00:00:00.000', N'2018-08-04T00:00:00.000', N'2018-08-05T00:00:00.000', N'2018-08-06T00:00:00.000', N'2018-08-07T00:00:00.000', N'2018-08-08T00:00:00.000', N'2018-08-09T00:00:00.000', N'2018-08-10T00:00:00.000', N'2018-08-11T00:00:00.000', N'2018-08-12T00:00:00.000', N'2018-08-13T00:00:00.000', N'2018-08-14T00:00:00.000', N'2018-08-15T00:00:00.000', N'2018-08-16T00:00:00.000', N'2018-08-17T00:00:00.000', N'2018-08-18T00:00:00.000', N'2018-08-19T00:00:00.000', N'2018-08-20T00:00:00.000', N'2018-08-21T00:00:00.000', N'2018-08-22T00:00:00.000', N'2018-08-23T00:00:00.000', N'2018-08-24T00:00:00.000', N'2018-08-25T00:00:00.000', N'2018-08-26T00:00:00.000', N'2018-08-27T00:00:00.000', N'2018-08-28T00:00:00.000', N'2018-08-29T00:00:00.000', N'2018-08-30T00:00:00.000', N'2018-08-31T00:00:00.000')
GO


USE [GNSS]
GO

/****** Object:  PartitionScheme [PS201808]    ******/
CREATE PARTITION SCHEME [PS201808] AS PARTITION [PF201808] TO ([GNSSFG1], [GNSSFG2], [GNSSFG3], [GNSSFG4], [GNSSFG5], [GNSSFG6], [GNSSFG7], [GNSSFG8], [GNSSFG9], [GNSSFG10], [GNSSFG11], [GNSSFG12], [GNSSFG13], [GNSSFG14], [GNSSFG15], [GNSSFG16], [GNSSFG17], [GNSSFG18], [GNSSFG19], [GNSSFG20], [GNSSFG21], [GNSSFG22], [GNSSFG23], [GNSSFG24], [GNSSFG25], [GNSSFG26], [GNSSFG27], [GNSSFG28], [GNSSFG29], [GNSSFG30], [GNSSFG31])
GO
View Code

 

三、創建分區表

分區表跟普通表創建有點不一樣,分區表的創建還需要指定這個分區需要使用哪個分區方案下的分區欄位,那麼這裡就是[PS201808]中的[SignalDateTime]欄位。

CREATE TABLE [dbo].[201808](
    [VIN] [char](17) NOT NULL,
    [TerminalCode] [varchar](20) NOT NULL,
    [Latitude] [float] NOT NULL,
    [Longitude] [float] NOT NULL,
    [Direction] [smallint] NOT NULL,
    [Speed] [float] NOT NULL,
    [Elevation] [int] NOT NULL,
    [StateFlag] [bigint] NOT NULL,
    [AlarmFlag] [bigint] NOT NULL,
    [ServerDateTime] [datetime] NOT NULL,
    [SignalDateTime] [datetime] NOT NULL,
    [IsBlind] [bit] NOT NULL,
    [ACCState] [bit] NOT NULL,
    [PositioningState] [bit] NOT NULL,
    [ServerCode] [varchar](20) NOT NULL,
    [TerminalSIM] [varchar](13) NULL,
    [PlateNumber] [nvarchar](8) NULL,
    [ExtraStateFlag] [bigint] NULL,
    [ExtraStateFlag2] [bigint] NULL,
    [ExtraAlarmFlag] [bigint] NULL,
    [ExtraAlarmFlag2] [bigint] NULL,
    [RollerState] [tinyint] NULL,
    [Electricity] [float] NULL,
    [Temperature] [varchar](20) NULL,
    [OilHeight] [float] NULL,
    [Mileage] [float] NULL,
    [OilVolume] [float] NULL,
    [DRSpeed] [float] NULL,
    [SignalStrength] [tinyint] NULL,
    [SatelliteCount] [tinyint] NULL,
    [ExtendedState] [bigint] NULL,
    [IOState] [int] NULL,
    [OverspeedLocationType] [tinyint] NULL,
    [OverspeedAreaOrLineID] [bigint] NULL,
    [InAndOutAreaOrLineLocationType] [tinyint] NULL,
    [InAndOutAreaOrLineID] [bigint] NULL,
    [InAndOutAreaOrLineDirection] [bit] NULL,
    [LineDrivingTimeTooLongOrNotEnoughID] [bigint] NULL,
    [LineDrivingTime] [int] NULL,
    [LineDrivingResult] [bit] NULL
) ON [PS201808]([SignalDateTime])
View Code

 

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 通過源碼安裝 MySQL 資料庫,下載了 mysql-5.5.24 的版本,在使用 cmake 時產生了報錯,如下: 解決方法: 安裝 ncurses 成功後,再次進行 cmake 就可以了。 ...
  • 準備工作: 下載好Arch Linux的鏡像文件 百度打開Arch官網點擊download(下載)轉到下載界面,點擊磁力下載或者種子下載(官網預設是英文,英文不好的童鞋可以安裝瀏覽器翻譯插件,本人使用Windows10自帶的edge瀏覽器,推薦安裝Translator For Microsoft E ...
  • 首先,新建兩張表A和B,然後插入6條數據到A表,3條數據到B表。語句如下: 執行語句[select * from A left join B on A.ID=B.BID where B.BName=N'小明'],結果如下: 執行語句[select * from A left join B on A. ...
  • 摘要: 下文講述清空資料庫中所有表信息的方法分享,如下所示: 實驗環境:sql server 2008 實現思路: 1.禁用所有約束,外鍵 2.禁用所有觸發器 3.刪除表數據 4.開啟觸發器 5.開啟約束 此方法請謹慎使用,因為執行後,會導致所有數據丟失,並且不可恢復, 如出現外鍵約束,最好先刪除外 ...
  • 一、修改某個表的欄位類型及指定為空或非空 二、修改某個表的欄位名稱及指定為空或非空 ...
  • 摘要: 下文將詳細講述sql server 索引的相關知識,如下所示: 實驗環境: sql server 2008 R2 sqlserver索引簡介: mssql sqlsever 索引分類簡介 mssql sqlserver xml索引簡介說明 MSSQL 視圖索引簡介 MSSQL 篩選索引創建和 ...
  • 結構清晰、完整,內容實用。沒有過多的理論介紹,每個知識點都配有相關的例子,可操作性強,非常適合初學者循序漸進的學習。需要學習的朋友可以通過網盤免費下載pdf版 (先點擊普通下載 再選擇普通用戶就能免費下載了)http://putpan.com/fs/byibdens6hu823072/ 《MySQL ...
  • 一、‘xp_cmdshell’的啟用 SQL Server阻止了對組件‘xp_cmdshell’的過程‘sys.xp_cmdshell’的訪問。因為此組件已作為此服務囂安全配置的一部分而被關 閉。系統管理員可以通過使用sp_configure啟用‘xp_cmdshell’。有關啟用‘xp_cmdsh ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...