如何對已經存在的表進行加分區方案分區函數

我參考網上的,寫了2給存儲過程,一個初始創建文分區方案分區函數;一個可以通過作業新增文件組文件件;

但是初始沒有綁定表,網上的都是在創建表是綁定分區方案,但是我的表是已經存在的,怎么綁定

初始存儲過程

USE [DB3]
GO
/****** Object: ?StoredProcedure [dbo].[FQ_DB3_his_order_goods2_part_ID_first] ? ?Script Date: 2024/7/12 9:25:39 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

--每新增@FQROWS(500000)條記錄新增一個文件和文件組
Create PROCEDURE [dbo].[FQ_DB3_his_order_goods2_part_ID_first]
AS
BEGIN
? ? DECLARE --@FilePath VARCHAR(100), ? ? ? ? ? ? ? ? ? ? ?--文件路徑
? ? ? ? ? ? --@FileName VARCHAR(100), ? ? ? ? ? ? ? ? ? ? ?--文件名稱
? ? ? ? ? ? --@FileSize VARCHAR(100), ? ? ? ? ? ? ? ? ? ? ?--文件大小
? ? ? ? ? ? --@FileGrowth VARCHAR(100), ? ? ? ? ? ? ? ? ? ?--文件增長
? ? ? ? ? ? --@FileMaxLimit VARCHAR(100), ? ? ? ? ? ? ? ? ?--文件最大限制
? ? ? ? ? ? --@FileGroupName VARCHAR(100), ? ? ? ? ? ? ? ? --文件組名稱
? ? ? ? ? ? --@Database VARCHAR(100), ? ? ? ? ? ? ? ? ? ? ?--操作數據庫
?? ??? ??? ?@CurrentNum VARCHAR(2), --當前新分區計數
? ? ? ? ? ? @SchemeName VARCHAR(100), ? ? ? ? ? ? ? ? ? ?--分區方案名稱
? ? ? ? ? ? --@PartitionName VARCHAR(100), ? ? ? ? ? ? ? ? --分區函數名稱
?? ??? ??? ?@FQROWS ?int=100000; ? --每個分區文件放的記錄數 默認 500000
? ? ? ? ? ? --@sql VARCHAR(400); ? ?-- 賦值文件屬性
? ? --SET @FileSize = '8MB';
? ? --SET @FileGrowth = '1MB';
? ? --SET @FileMaxLimit = 'unlimited';
?? ?-- 賦值分區屬性
?? ?SET @SchemeName = 'his_order_goods2_part_id_fa'; ? --'cti_IDFQ_Scheme'; 分區方案名稱
?? ?--SET @PartitionName ='his_order_goods2_part_id_func()'; -- ? 'cti_IDFQ_Func()'; ?分區函數名稱

? ? declare @rows as int
? ? select @rows=count(*) from his_order_goods2_part;

? ? --沒有為當前表創建分區和分區函數
?? ?SELECT count(*) FROM sys.partition_functions ?where name='his_order_goods2_part_id_fa'
?? ?if (SELECT count(*) FROM sys.partition_functions ?where name=@SchemeName)<=0
?? ?begin
?? ??? ?--創建文件組語句
?? ??? ?ALTER DATABASE DB3 ADD FILEGROUP [wjz_part_01]

?? ??? ?--創建文件語句
?? ??? ?ALTER DATABASE DB3 ADD FILE ( NAME = N'F01_part', FILENAME = N'D:\DB3\F01_part.ndf' , SIZE = 100MB , FILEGROWTH = 500MB ) TO FILEGROUP [wjz_part_01]

?? ??? ?--創建分區函數
?? ??? ?CREATE PARTITION FUNCTION his_order_goods2_part_id_func(bigint)
?? ??? ?AS RANGE right FOR VALUES?
?? ??? ?(
?? ??? ?@FQROWS
?? ??? ?);

?? ??? ?--創建分區方案
?? ??? ?CREATE PARTITION SCHEME his_order_goods2_part_id_fa
?? ??? ?AS PARTITION his_order_goods2_part_id_func
?? ??? ?TO (
?? ??? ?[PRIMARY],
?? ??? ?[wjz_part_01]
?? ??? ?);
?? ?end
?? ?return 1

END;
?

可以自動新增文件組和文件的存儲過程

USE [DB3]
GO
/****** Object: ?StoredProcedure [dbo].[FQ_DB3_his_order_goods2_part_ID] ? ?Script Date: 2024/7/11 17:35:52 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- exec ?FQ_DB3_his_order_goods2_part_ID
--每新增@FQROWS(500000)條記錄新增一個文件和文件組
CREATE PROCEDURE [dbo].[FQ_DB3_his_order_goods2_part_ID]
AS
BEGIN
--BEGIN TRANSACTION
? ? DECLARE @FilePath VARCHAR(100), ? ? ? ? ? ? ? ? ? ? ?--文件路徑
? ? ? ? ? ? @FileName VARCHAR(100), ? ? ? ? ? ? ? ? ? ? ?--文件名稱
? ? ? ? ? ? @FileSize VARCHAR(100), ? ? ? ? ? ? ? ? ? ? ?--文件大小
? ? ? ? ? ? @FileGrowth VARCHAR(100), ? ? ? ? ? ? ? ? ? ?--文件增長
? ? ? ? ? ? @FileMaxLimit VARCHAR(100), ? ? ? ? ? ? ? ? ?--文件最大限制
? ? ? ? ? ? @FileGroupName VARCHAR(100), ? ? ? ? ? ? ? ? --文件組名稱
? ? ? ? ? ? @Database VARCHAR(100), ? ? ? ? ? ? ? ? ? ? ?--操作數據庫
?? ??? ??? ?@CurrentNum VARCHAR(2), --當前新分區計數
? ? ? ? ? ? @SchemeName VARCHAR(100), ? ? ? ? ? ? ? ? ? ?--分區方案名稱
? ? ? ? ? ? @PartitionName VARCHAR(100), ? ? ? ? ? ? ? ? --分區函數名稱
?? ??? ??? ?@FQROWS ?int=100000, ? --每給分區文件放的記錄數 默認 500000
? ? ? ? ? ? @sql VARCHAR(400); ? ?-- 賦值文件屬性
? ? SET @FileSize = '8MB';
? ? SET @FileGrowth = '1MB';
? ? SET @FileMaxLimit = 'unlimited';
?? ?-- 賦值分區屬性
?? ?SET @SchemeName = 'his_order_goods2_part_id_fa'; ? --'cti_IDFQ_Scheme'; 分區方案名稱
?? ?SET @PartitionName ='his_order_goods2_part_id_func()'; -- ? 'cti_IDFQ_Func()'; ?分區函數名稱

? ? declare @rows as int
? ? select @rows=count(*) from his_order_goods2_part;
? ? print @rows

?-- ? --沒有為當前表創建分區和分區函數
?? ?--SELECT count(*) FROM sys.partition_functions ?where name='his_order_goods2_part_id_fa'
?? ?--if (SELECT count(*) FROM sys.partition_functions ?where name=@SchemeName)<=0
?? ?--begin
?? ?--?? ?--創建文件組語句
?? ?--?? ?ALTER DATABASE DB3 ADD FILEGROUP [wjz_part_01]

?? ?--?? ?--創建文件語句
?? ?--?? ?ALTER DATABASE DB3 ADD FILE ( NAME = N'F01_part', FILENAME = N'D:\DB3\F01_part.ndf' , SIZE = 100MB , FILEGROWTH = 500MB ) TO FILEGROUP [wjz_part_01]

?? ?--?? ?--創建分區函數
?? ?--?? ?CREATE PARTITION FUNCTION his_order_goods2_part_id_func(bigint)
?? ?--?? ?AS RANGE right FOR VALUES?
?? ?--?? ?(
?? ?--?? ?@CurrentNum
?? ?--?? ?);

?? ?--?? ?--創建分區方案
?? ?--?? ?CREATE PARTITION SCHEME his_order_goods2_part_id_fa
?? ?--?? ?AS PARTITION his_order_goods2_part_id_func
?? ?--?? ?TO (
?? ?--?? ?[PRIMARY],
?? ?--?? ?[wjz_part_01]
?? ?--?? ?);
?? ?--end

?? ?--獲取分區數 并根據記錄數判斷是否新建
?? ?declare @fqs as int=0
?? ?SELECT @fqs=count(*)+1 FROM sys.partition_range_values
?? ?where function_id=(SELECT function_id FROM sys.partition_functions where name='his_order_goods2_part_id_func');
?? ?print @fqs
?? ?--當 分區數*設置的分區記錄數(500000)<表的總行數 添加一個文件
?? ?if @fqs*@FQROWS<@rows
?? ?begin
?? ? ? ?set @CurrentNum=cast(@fqs+1 as VARCHAR(2));
?? ? ? ?print '新增分區文件和文件組'
?? ??? ?SET @FileName = 'dbfn_part' + @CurrentNum;
?? ??? ?SET @FilePath = 'D:\DB3';
?? ??? ?-- 賦值數據庫屬性
?? ??? ?SET @Database = '[DB3]';
?? ??? ?-- 賦值文件組屬性
?? ??? ?SET @FileGroupName = 'fg_part' + @CurrentNum;
?? ??? ?-- 創建文件組
?? ??? ?SET @sql = 'alter database ' + @Database + ' add filegroup ' + @FileGroupName + '';
?? ??? ?EXEC (@sql);
?? ??? ?-- 創建文件,并綁定文件組
?? ??? ?SET @sql = 'alter database ' + @Database + ' add file (name=''' + @FileName + ''',' + 'filename=''' + @FilePath + '\'
?? ??? ??? ? ?+ @FileName + '.ndf'',' + 'size = ' + @FileSize + ',' + 'filegrowth = ' + @FileGrowth + ',' + 'maxsize = '
?? ??? ??? ? ?+ @FileMaxLimit + '' + ')' + 'to filegroup ' + @FileGroupName;
?? ??? ?EXEC (@sql);
?? ??? ?-- 修改分區方案
?? ??? ?SET @sql = 'alter partition scheme ' + @SchemeName + ' next used ' + @FileGroupName + '';
?? ??? ?EXEC (@sql);
?? ??? ?-- 修改分區函數
?? ??? ?print '@CurrentNum'
?? ??? ?print @CurrentNum
?? ??? ?print @FQROWS
?? ??? ?declare @range_val int=cast(@CurrentNum as int)*@FQROWS;
?? ??? ?print @range_val
?? ??? ?declare @str_range_val varchar(10)
?? ??? ?set @str_range_val=cast(@range_val as varchar(10))
?? ??? ?print @str_range_val
?? ??? ?--SET @sql = 'alter partition function ' + @PartitionName + ' split range (N''' +CONVERT(VARCHAR(10), getdate(), 120)+''')'?? ?
?? ??? ?SET @sql = 'alter partition function ' + @PartitionName + ' split range (cast(' + @str_range_val+ ' as int) )'
?? ??? ?print @sql
?? ??? ?EXEC (@sql);
?? ?end
?? ?else
?? ?begin
?? ? ? print '不新增'
?? ?end
?? ?return 1

--COMMIT TRANSACTION
END;
?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/44780.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/44780.shtml
英文地址,請注明出處:http://en.pswp.cn/web/44780.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Python實現網站IP地址查詢

使用socket庫實現網站的ip地址查詢&#xff0c;以便于使用CC攻擊和DDoS攻擊&#xff08;鬧著玩的&#xff09; import socket def get_website_ip(website): try: ip socket.gethostbyname(website) return ip except socket.gaierror: retur…

最小數字游戲(Lc2974)——模擬+優先隊列(小根堆)、排序+交換

你有一個下標從 0 開始、長度為 偶數 的整數數組 nums &#xff0c;同時還有一個空數組 arr 。Alice 和 Bob 決定玩一個游戲&#xff0c;游戲中每一輪 Alice 和 Bob 都會各自執行一次操作。游戲規則如下&#xff1a; 每一輪&#xff0c;Alice 先從 nums 中移除一個 最小 元素&…

力扣 383贖金信

思路&#xff0c;用unordered_map存儲magazine中字符以及字符出現的次數 遍歷ransomNote中每個字符&#xff0c;如果能在map中找到&#xff0c;則對應value減一&#xff0c;如果字符對應的value小于零&#xff0c;意味著magazine中找不到與ransomNote里這個字符對應的字符&…

翁愷-C語言程序設計-05-3. 求a的連續和

05-3. 求a的連續和 輸入兩個整數a和n&#xff0c;a的范圍是[0,9]&#xff0c;n的范圍是[1,8]&#xff0c;求數列之和S aaaaaa…aaa…a&#xff08;n個a&#xff09;。如a為2、n為8時輸出的是222222…22222222的和。 輸入格式&#xff1a; 輸入在一行中給出兩個整數&#xf…

VUE_TypeError: Cannot convert a BigInt value to a number at Math.pow 解決方法

錯誤信息 TypeError: Cannot convert a BigInt value to a number at Math.pow vue 或 react package.json添加 "browserslist": {"production": ["chrome > 67","edge > 79","firefox > 68","opera >…

實戰演練-2021年電賽國一之三端口DC-DC變換器

文章目錄 前言一、題目二、題目分析1、題目要求解析2、題目方案選定方案一(使用buck-boost電路&#xff0b;雙向DC-DC電路&#xff08;前端&#xff09;)方案二(使用同步整流Boost升壓電路&#xff0b;雙向DC-DC電路&#xff08;前端&#xff09;)方案三(使用同步整流Boost升壓…

實時聊天 Vue + Vuex + sockjs-client + stompjs進行websocket連接

實時聊天 知識點WebSocket介紹SockJSSTOMP 開發環境功能實現安裝應用在vuex中創建vue中的引入、監聽、實例化與收發、訂閱消息引入組件實例化與訂閱計算屬性監聽收到消息封裝的發送消息的公共方法發送消息 完整的代碼 知識點 WebSocket介紹 WebSocket 是一種在 Web 應用中實現…

二叉搜索樹大冒險:尋找-插入-刪除

OK&#xff0c;看我們題目就可知道啦&#xff0c;今天要分享學習的一種數據結構就是二叉搜索樹。 內容題目也說了三個大概的&#xff0c;分別是尋找、插入、刪除。 講這個之前呢&#xff0c;那么就先講講這個二叉搜索樹是何方神圣呢&#xff1f; 二叉搜索樹&#xff1a; 又…

【學習筆記】無人機(UAV)在3GPP系統中的增強支持(五)-同時支持無人機和eMBB用戶數據傳輸的用例

引言 本文是3GPP TR 22.829 V17.1.0技術報告&#xff0c;專注于無人機&#xff08;UAV&#xff09;在3GPP系統中的增強支持。文章提出了多個無人機應用場景&#xff0c;分析了相應的能力要求&#xff0c;并建議了新的服務級別要求和關鍵性能指標&#xff08;KPIs&#xff09;。…

全網最詳細單細胞保姆級分析教程(二) --- 多樣本整合

上一節我們研究了如何對單樣本進行分析,這節我們就著重來研究一下如何對多樣本整合進行研究分析! 1. 導入相關包 library(Seurat) library(tidyverse) library(patchwork)2. 數據準備 # 導入單樣本文件 dir c(~/Desktop/diversity intergration/scRNA_26-0_filtered_featur…

Linux上如何安裝ffmpeg視頻處理軟件

在Linux上安裝ffmpeg需要以下步驟&#xff1a; 更新系統 在開始安裝之前&#xff0c;首先需要更新系統以獲取最新的軟件包列表和版本。在終端中執行以下命令&#xff1a; sudo apt update sudo apt upgrade安裝依賴庫 ffmpeg依賴于一些庫和工具&#xff0c;需要先安裝它們。在…

【香橙派 Orange pi AIpro】| 開發板深入使用體驗

目錄 一. &#x1f981; 寫在前面二. &#x1f981; 愉快的安裝流程2.1 安裝前準備2.2 流程準備2.2.1 燒錄鏡像2.2.2 開機2.2.3 連網2.2.4 SSH遠程連接開發板 2.3 體驗 AI 應用樣例 三. &#x1f981; 寫在最后 一. &#x1f981; 寫在前面 大家好&#xff0c;我是獅子呀&…

醫療級微型導軌:保障醫療行業手術安全!

微型直線導軌能成為一種專為醫療行業設備運用的高精度線性運動設備&#xff0c;在現代醫療領域&#xff0c;精準的位置控制和平穩的運動對于確保醫療設備的高效性能至關重要。那么&#xff0c;醫療行業對微型導軌有哪些要求呢&#xff1f; 1、精度&#xff1a;在手術過程中&…

C++客戶端Qt開發——開發環境

一、QT開發環境 1.安裝三個部分 ①C編譯器&#xff08;gcc&#xff0c;cl.exe……) ②QT SDK SDK-->軟件開發工具包 比如&#xff0c;windows版本QT SDK里已經內置了C的編譯器&#xff08;內置編譯器是mingw&#xff0c;windows版本的gcc/g&#xff09; ③QT的集成開發…

Python編程中用函數還是用復雜的表達式

要不要使用復雜表達式 Perl語言的原作者Larry Wall曾經說過&#xff0c;偉大的程序員都有三個優點&#xff1a;懶惰、暴躁和自負。乍一看這三個詞語沒有一個是褒義詞&#xff0c;但在程序員的世界里&#xff0c;這三個詞有不同的意義。首先&#xff0c;懶惰會促使程序員去寫一…

智慧園區規劃建設解決方案PPT(40頁)

智慧園區規劃建設解決方案摘要 1. 園區定義與發展歷程 園區&#xff0c;亦稱開發區&#xff0c;是在特定產業和區域政策指導下形成的區域。它們通過提供基礎設施和生產空間&#xff0c;吸引投資&#xff0c;形成技術、資本密集區&#xff0c;推動經濟發展。園區發展經歷了四代…

Docker 部署 ShardingSphere-Proxy 數據庫中間件

文章目錄 Github官網文檔ShardingSphere-Proxymysql-connector-java 驅動下載conf 配置global.yamldatabase-sharding.yamldatabase-readwrite-splitting.yamldockerdocker-compose.yml Apache ShardingSphere 是一款分布式的數據庫生態系統&#xff0c; 可以將任意數據庫轉換為…

【qt】TCP客戶端信息的接受和發送

當有信息時的槽函數關聯 跟服務端收到信息一樣,當可以讀一行的時候,就從套接字讀一行. 發送信息也是和服務端如出一轍,通過write(). 運行結果:

java EnumSet 介紹

EnumSet 是 Java Collections Framework 中專門為枚舉類型設計的高效集合實現。與其他集合類相比,EnumSet 提供了許多優點,如高效性、類型安全和易用性。它只能包含單個枚舉類型的值,并且在內部使用位向量實現,因而在空間和時間上都非常高效。 EnumSet 的特點 高效性:Enu…

Spring MVC 中的文件上傳 和 文件下載

Spring MVC 中的文件上傳 和 文件下載 文章目錄 Spring MVC 中的文件上傳 和 文件下載1. Spring MVC 中的文件上傳2. Spring MVC 中的文件下載3. 總結&#xff1a;4. 最后&#xff1a; 1. Spring MVC 中的文件上傳 文件上傳是&#xff1a;瀏覽器端向服務器發送文件&#xff0c…