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

đặt hàng bởi newid () - nó hoạt động như thế nào?

Tôi biết NewID () làm gì, tôi chỉ đang cố gắng hiểu nó sẽ giúp ích như thế nào trong việc lựa chọn ngẫu nhiên. Có phải (1) câu lệnh select sẽ chọnEVERYTHING từ bảng của tôi, (2) cho mỗi mũi tên được chọn, truy cập vào auniqueidentifier được tạo bởi NewID (), (3) sắp xếp các hàng theo thisuniqueidentifier và (4) chọn ra 100 từ danh sách đã sắp xếp ?

Đúng. điều này khá chính xác (ngoại trừ nó không nhất thiết phải sắp xếp tất cả các hàng). Bạn có thể xác minh điều này bằng cách xem kế hoạch thực hiện thực tế.

SELECT TOP 100 * 
FROM master..spt_values 
ORDER BY NEWID()

Toán tử vô hướng máy tính thêm NEWID() cột trên cho mỗi hàng (2506 trong bảng trong truy vấn ví dụ của tôi) thì các hàng trong bảng được sắp xếp theo cột này với 100 hàng đầu được chọn.

SQL Server thực sự không cần phải sắp xếp toàn bộ tập hợp từ vị trí 100 trở xuống vì vậy nó sử dụng TOP N toán tử sắp xếp cố gắng thực hiện toàn bộ thao tác sắp xếp trong bộ nhớ (đối với các giá trị nhỏ của N )



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server 2017:Các tính năng có sẵn trên Linux

  2. Làm cách nào để tải tệp XML vào cơ sở dữ liệu bằng gói SSIS?

  3. Cách sử dụng OBJECT_ID () trên các đối tượng cơ sở dữ liệu chéo trong SQL Server

  4. Kiểm tra sao lưu máy chủ SQL

  5. Giới thiệu Nền tảng SaaS đầu tiên trên thế giới để cung cấp chẩn đoán sâu cho môi trường máy chủ SQL kết hợp