Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Kueri COUNT FreeText di beberapa tabel sangat lambat

Setelah sedikit percobaan kesalahan saya menemukan solusi yang tampaknya berhasil. Ini melibatkan pembuatan tampilan yang diindeks:

CREATE VIEW [dbo].[vw_ProductBrand]
WITH SCHEMABINDING
AS
SELECT     dbo.Product.ID, dbo.Product.Name, dbo.Product.SKU, dbo.Brand.Name AS BrandName
FROM         dbo.Product INNER JOIN
                      dbo.Brand ON dbo.Product.BrandID = dbo.Brand.ID

GO

CREATE UNIQUE CLUSTERED INDEX IX_VW_PRODUCTBRAND_ID 
    ON vw_ProductBrand (ID);
GO

Jika saya menjalankan kueri berikut:

DBCC DROPCLEANBUFFERS
DBCC FREEPROCCACHE
GO

SELECT count(*) 
FROM   Product
       inner join vw_ProductBrand
         on Product.BrandID =  vw_ProductBrand.ID
WHERE  (contains(vw_ProductBrand.Name, 'pants') 
   or 
            contains( vw_ProductBrand.BrandName, 'pants'))

Sekarang dibutuhkan 1 detik lagi.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Argumen Opsional dalam Klausa WHERE

  2. Kolom yang dihitung di EF Code First

  3. PHP &SQL Server - nama bidang terpotong

  4. SQL Pivot Table dinamis

  5. Praktik Terbaik Pemulihan Bencana Microsoft SQL Server