数据库分区函数 (sql server 2008)

发布于 2024-08-10 12:34:13 字数 526 浏览 1 评论 0原文

你好, 我想在 sql server 2008 中为我的车队管理系统编写分区。 我想编写一个分区函数,例如 mh-30-q-126、mh-30-a-126、mh-12-fc-126 之类的值(车辆编号)应移动到相应的分区, 分别取决于中间值,例如,q,a,fc

我的试用功能:-

CREATE PARTITION FUNCTION [partition](varchar(20))
 AS RANGE RIGHT  
FOR VALUES ('%a%', '%G%', '%Z%')  

此功能将所有(每个值)数据移动到分区 4 。

 CREATE PARTITION FUNCTION [partition](varchar(20))
 AS RANGE RIGHT 
FOR VALUES ('a', 'G', 'Z')   

这个分区不能满足我想要对中间的值进行排序的情况,例如mh-30-q-126 ..这里我想将目标值“q”移动到相应的分区,,, 请告诉我如何编写这个函数

HI,
I want to write partiton in sql server 2008 for my fleet management system.
I want to write a partition function such that --values (vehicle number) like for example mh-30-q-126,mh-30-a-126,mh-12-fc-126 should be moved to respective partiton,
depending upon middle values like ,q,a,fc respectively

My trial function:-

CREATE PARTITION FUNCTION [partition](varchar(20))
 AS RANGE RIGHT  
FOR VALUES ('%a%', '%G%', '%Z%')  

this function moves all(every value) data to partition 4 .

 CREATE PARTITION FUNCTION [partition](varchar(20))
 AS RANGE RIGHT 
FOR VALUES ('a', 'G', 'Z')   

This partition does not satisfy me in terms where i want to sort values which are in middle eg.mh-30-q-126 ..here i want to target value "q" to move to respective partion,,,
plz tell tell me how to write this function

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

烟柳画桥 2024-08-17 12:34:13

您不能直接因为 PARTITION 的工作方式

“boundary_value”是一个常量,你不能使用 LIKE。

我所能建议的就是一个计算列,它可以提取您想要的值并对其进行分区。
但是,您的值可能不适合一致的解析。

mh-30-q-126
mh-30-a-126
mh-12-fc-126

注意:我没有尝试过这个。我通常会根据日期或类似的事情进行划分。

然而,除非确实有必要,否则我也不会进行分区,比如 1 亿行以上,因为分区中隐含的开销。需要分区吗?

You can't directly because of how PARTITION works

"boundary_value" is a constant and you can't use LIKE.

All I can suggest is a computed column that extracts the values you want and you partition on that.
However, you may have values which don't lend themselves to consistent parsing.

mh-30-q-126
mh-30-a-126
mh-12-fc-126

Note: I've not tried this. I'd normally partition on a date or something like that.

However, I'd also not partition unless I really had to, like 100 million rows+ because of implied overhead in partitioning. Do you need to partition?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文