如何在 Azure Synapse Analytics 中创建唯一聚集索引?
How do I create a unique clustered index in Azure Synapse Analytics?
我正在尝试在 Azure Synapse Analytics
上创建一个具有唯一聚集索引的 table
我试过了
CREATE TABLE [myschema].[test] (
ID1 int UNIQUE NOT ENFORCED,
ID2 int UNIQUE NOT ENFORCED,
message varchar(MAX)
)
WITH (
CLUSTERED INDEX (ID1, ID2)
)
和
CREATE TABLE [myschema].[test] (
ID1 int,
ID2 int,
message varchar(MAX),
CONSTRAINT test_unique UNIQUE(ID1,ID2) NOT ENFORCED
)
WITH (
CLUSTERED INDEX (ID1, ID2)
)
我知道它们是等价的,而且我两次都收到此错误
Error: Cannot use duplicate column names in statistics. Column name 'ID1' listed more than once.
在 Synapse 中,您只能在一列上创建一个聚簇索引。
如果您需要进一步提高性能,那么您需要创建一个非聚集索引。
在您的情况下,代码将是:
CREATE TABLE [myschema].[test] (
ID1 int UNIQUE NOT ENFORCED,
ID2 int UNIQUE NOT ENFORCED,
message varchar(MAX)) WITH (
CLUSTERED INDEX (ID1)) --Only ID1 is used as clustered index
如果你想让查询工作得更快,你可以添加非聚集索引。
您可以参考以下链接了解更多:
- https://www.techrepublic.com/article/index-on-multiple-columns-for-sql-performance/
- https://docs.microsoft.com/en-us/azure/synapse-analytics/sql-data-warehouse/sql-data-warehouse-tables-index
谢谢:)
我们已注意到此问题并正在努力解决。您确实有解决此问题的方法,请试试这个,它应该会有所帮助。
CREATE TABLE [test1] (
ID1 int UNIQUE NOT ENFORCED,
ID2 int UNIQUE NOT ENFORCED,
message varchar(MAX)
)
WITH (
HEAP
)
GO
CREATE CLUSTERED INDEX isTest ON [Test1](ID1,ID2)
我正在尝试在 Azure Synapse Analytics
上创建一个具有唯一聚集索引的 table我试过了
CREATE TABLE [myschema].[test] (
ID1 int UNIQUE NOT ENFORCED,
ID2 int UNIQUE NOT ENFORCED,
message varchar(MAX)
)
WITH (
CLUSTERED INDEX (ID1, ID2)
)
和
CREATE TABLE [myschema].[test] (
ID1 int,
ID2 int,
message varchar(MAX),
CONSTRAINT test_unique UNIQUE(ID1,ID2) NOT ENFORCED
)
WITH (
CLUSTERED INDEX (ID1, ID2)
)
我知道它们是等价的,而且我两次都收到此错误
Error: Cannot use duplicate column names in statistics. Column name 'ID1' listed more than once.
在 Synapse 中,您只能在一列上创建一个聚簇索引。
如果您需要进一步提高性能,那么您需要创建一个非聚集索引。
在您的情况下,代码将是:
CREATE TABLE [myschema].[test] (
ID1 int UNIQUE NOT ENFORCED,
ID2 int UNIQUE NOT ENFORCED,
message varchar(MAX)) WITH (
CLUSTERED INDEX (ID1)) --Only ID1 is used as clustered index
如果你想让查询工作得更快,你可以添加非聚集索引。
您可以参考以下链接了解更多:
- https://www.techrepublic.com/article/index-on-multiple-columns-for-sql-performance/
- https://docs.microsoft.com/en-us/azure/synapse-analytics/sql-data-warehouse/sql-data-warehouse-tables-index
谢谢:)
我们已注意到此问题并正在努力解决。您确实有解决此问题的方法,请试试这个,它应该会有所帮助。
CREATE TABLE [test1] (
ID1 int UNIQUE NOT ENFORCED,
ID2 int UNIQUE NOT ENFORCED,
message varchar(MAX)
)
WITH (
HEAP
)
GO
CREATE CLUSTERED INDEX isTest ON [Test1](ID1,ID2)