Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.databases.ms-sqlserver > #2259 > unrolled thread

No covering indices for table types?

Started byAnton Shepelev <anton.txt@g{oogle}mail.com>
First post2024-07-12 15:15 +0300
Last post2024-07-15 14:27 +0300
Articles 3 — 2 participants

Back to article view | Back to comp.databases.ms-sqlserver


Contents

  No covering indices for table types? Anton Shepelev <anton.txt@g{oogle}mail.com> - 2024-07-12 15:15 +0300
    Re: No covering indices for table types? Erland Sommarskog <esquel@sommarskog.se> - 2024-07-12 23:48 +0200
      Re: No covering indices for table types? Anton Shepelev <anton.txt@g{oogle}mail.com> - 2024-07-15 14:27 +0300

#2259 — No covering indices for table types?

FromAnton Shepelev <anton.txt@g{oogle}mail.com>
Date2024-07-12 15:15 +0300
SubjectNo covering indices for table types?
Message-ID<20240712151501.d23ddf433e73ae41365603cf@g{oogle}mail.com>
Hello, all.

I wanted to create a convenient table-type for storing time
series (with possibly non-uniqe sample marks):

  CREATE TYPE series_t AS TABLE
  (  moment DATETIME NOT NULL,
     value  FLOAT
  )

For efficient querying and joining, I need a covering index
on the [moment] field that includes [value], but the INCLUDE
keyword does not seem to be suported:

  https://learn.microsoft.com/en-us/sql/t-sql/statements/create-type-transact-sql

so that I can only create a simple non-convering column
index:

  CREATE TYPE series_t AS TABLE
  (  moment DATETIME NOT NULL INDEX moment,
     value  FLOAT
  )

or a compound table index for both columns:

  CREATE TYPE series_t AS TABLE
  (  moment DATETIME NOT NULL,
     value  FLOAT
     INDEX Main(moment, value)
  )

What is best practice in cases when a covering index is
required for a tale-type?

-- 
()  ascii ribbon campaign -- against html e-mail
/\  www.asciiribbon.org   -- against proprietary attachments

[toc] | [next] | [standalone]


#2260

FromErland Sommarskog <esquel@sommarskog.se>
Date2024-07-12 23:48 +0200
Message-ID<XnsB1ADF2304F6C3Yazorman@127.0.0.1>
In reply to#2259
Anton Shepelev (anton.txt@g{oogle}mail.com) writes:
> Hello, all.
> 
> I wanted to create a convenient table-type for storing time
> series (with possibly non-uniqe sample marks):
> 
>   CREATE TYPE series_t AS TABLE
>   (  moment DATETIME NOT NULL,
>      value  FLOAT
>   )
> 
> For efficient querying and joining, I need a covering index
> on the [moment] field that includes [value], but the INCLUDE
> keyword does not seem to be suported:
> 

Starting with SQL 2019, it is:

CREATE TYPE series_t AS TABLE
  (  moment DATETIME NOT NULL,
     value  FLOAT,
     INDEX Main(moment) 
     INCLUDE (value)
  )

If you are an older version, I would suggest adding value as an index key
is the best in most situations.

I will submit an edit to the CREATE TYPE topic.

[toc] | [prev] | [next] | [standalone]


#2261

FromAnton Shepelev <anton.txt@g{oogle}mail.com>
Date2024-07-15 14:27 +0300
Message-ID<20240715142708.72511985f0c9753807aa6357@g{oogle}mail.com>
In reply to#2260
Erland Sommarskog to Anton Shepelev:

> > For efficient querying and joining, I need a covering
> > index on the [moment] field that includes [value], but
> > the INCLUDE keyword does not seem to be suported:
>
> Starting with SQL 2019, it is:
>
> CREATE TYPE series_t AS TABLE
>   (  moment DATETIME NOT NULL,
>      value  FLOAT,
>      INDEX Main(moment)
>      INCLUDE (value)
>   )

Glad to know MSSQL is improving, although I am using an
older version.

> If you are an older version, I would suggest adding value
> as an index key is the best in most situations.

Indeed.  That's that I did.

> I will submit an edit to the CREATE TYPE topic.

Thank you.  I myself have fixed a few of their documentation
articles about .NET, including those describing the
connection-string syntax.  How strange that Microsoft has
decidied to let the community wrote their documentation...

-- 
()  ascii ribbon campaign -- against html e-mail
/\  www.asciiribbon.org   -- against proprietary attachments

[toc] | [prev] | [standalone]


Back to top | Article view | comp.databases.ms-sqlserver


csiph-web