Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Các truy vấn đọc các biến bảng có thể tạo ra các kế hoạch loại bỏ song song trong SQL Server 2008 không?

Được, tôi có một lựa chọn song song nhưng không trên biến bảng

Tôi đã ẩn danh nó và:

  • BigParallelTable rộng 900 nghìn hàng
  • Vì những lý do cũ, BigParallelTable bị mất chuẩn hóa một phần (tôi sẽ sửa nó, xin hứa sau)
  • BigParallelTable thường tạo các kế hoạch song song vì nó không lý tưởng và "đắt"
  • SQL Server 2005 x64, SP3, bản dựng 4035, 16 lõi

Truy vấn + kế hoạch:

DECLARE @FilterList TABLE (bar varchar(100) NOT NULL)

INSERT @FilterList (bar)
SELECT 'val1' UNION ALL 'val2' UNION ALL 'val3'

--snipped

SELECT
     *
FROM
    dbo.BigParallelTable BPT
    JOIN
    @FilterList FL ON BPT.Thing = FL.Bar

StmtText
  |--Parallelism(Gather Streams)
       |--Hash Match(Inner Join, HASH:([FL].[bar])=([BPT].[Thing]), RESIDUAL:(@FilterList.[bar] as [FL].[bar]=[MyDB].[dbo].[BigParallelTable].[Thing] as [BPT].[Thing]))
            |--Parallelism(Distribute Streams, Broadcast Partitioning)
            |    |--Table Scan(OBJECT:(@FilterList AS [FL]))
            |--Clustered Index Scan(OBJECT:([MyDB].[dbo].[BigParallelTable].[PK_BigParallelTable] AS [BPT]))

Bây giờ, suy nghĩ về nó, một biến bảng hầu như luôn luôn là một bảng quét, không có số liệu thống kê và được giả định là một hàng "Số hàng ước tính =1", "Thực tế .. =3".

Chúng ta có thể khai báo rằng các biến bảng không được sử dụng song song, nhưng kế hoạch chứa có thể sử dụng song song ở những nơi khác không? Vì vậy, BOL là đúng và bài viết Lưu trữ SQL là sai



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Băm nhỏ XML từ các kế hoạch thực thi

  2. SQL Server - Chọn các cột đáp ứng các điều kiện nhất định?

  3. Cách DB_NAME () hoạt động trong SQL Server

  4. Nguy cơ của việc sử dụng 'IF EXISTS ... UPDATE .. ELSE .. INSERT' và giải pháp thay thế là gì?

  5. Kết nối với SQL Server từ Nodejs