SSMS
 sql >> Cơ Sở Dữ Liệu >  >> Database Tools >> SSMS

Tại sao chạy một truy vấn trên SQL Azure lại chậm hơn nhiều?

Đây là câu hỏi đầu tiên và quan trọng nhất về hiệu suất. Bạn đang đối phó với một mã hoạt động kém và bạn phải xác định nút cổ chai và giải quyết nó. Tôi đang nói về 2 giây tồi tệ hiệu suất ngay bây giờ. Thực hiện theo các hướng dẫn tại Cách phân tích hiệu suất SQL Server . Khi bạn nhận được truy vấn này để thực thi cục bộ có thể chấp nhận được đối với một ứng dụng web (dưới 5 mili giây) thì bạn có thể đặt câu hỏi về việc chuyển nó sang Azure SQL DB. Hiện tại, tài khoản dùng thử của bạn chỉ làm nổi bật những điểm kém hiệu quả hiện có.

Sau khi cập nhật

...
@iddepartment int
...
iddepartment='+convert(nvarchar(max),@iddepartment)+'
...

vậy đo la cai gi? là iddepartment cột một int hoặc một nvarchar ? Và tại sao lại sử dụng (max) ?

Đây là những gì bạn nên làm:

  • tham số hóa @iddepartment trong SQL động bên trong
  • ngừng hoạt động nvarchar(max) sự chuyển đổi. Tạo iddepartment@iddertment các loại khớp với nhau
  • đảm bảo các chỉ mục trên iddepartment và tất cả idkpi s

Đây là cách tham số hóa SQL bên trong:

set @sql =N'
Select * from (
select kpiname, target, ivalues, convert(decimal(18,2),day(idate)) as iDay   
from kpi
inner join kpivalues on kpivalues.idkpi=kpi.idkpi
inner join kpitarget on kpitarget.idkpi=kpi.idkpi
inner join departmentbscs on departmentbscs.idkpi=kpi.idkpi
where [email protected]
group by kpiname,target, ivalues,idate)x
pivot
(
     avg(ivalues)
    for iDay in (' [email protected] + N')
) p'

execute sp_executesql @sql, N'@iddepartment INT', @iddepartment;

Các chỉ số bao trùm, cho đến nay, là bản sửa lỗi quan trọng nhất. Điều đó rõ ràng đòi hỏi nhiều thông tin hơn hiện tại ở đây. Đọc Thiết kế Chỉ mục bao gồm tất cả các chương phụ.

Như một nhận xét chung hơn:loại truy vấn này phù hợp với columnstores nhiều hơn rowstore, mặc dù tôi cho rằng kích thước dữ liệu về cơ bản là rất nhỏ. Azure SQL DB hỗ trợ các chỉ mục cột lưu trữ được phân cụm có thể cập nhật, bạn có thể thử nghiệm với nó với dự đoán về kích thước dữ liệu nghiêm trọng. Họ yêu cầu Enterprise / Development trên hộp cục bộ, đúng.



  1. DBeaver
  2.   
  3. phpMyAdmin
  4.   
  5. Navicat
  6.   
  7. SSMS
  8.   
  9. MySQL Workbench
  10.   
  11. SQLyog
  1. SQL Server Management Studio 2012 bị treo

  2. Kiểm soát lưới trong SSMS

  3. Lưu kết quả với tiêu đề trong Sql Server Management Studio

  4. SSAS DB không hiển thị trong Management Studio nhưng có thể nhìn thấy trong Excel

  5. Tên đối tượng không hợp lệ - Thủ tục được lưu trữ