Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

एक प्रश्न करने की तुलना में धीमी गति से विचारों पर पूछताछ कर रहा है?

जबकि आपके साधारण उदाहरण में चीजें समान होंगी, नेस्टेड दृश्यों का उपयोग करने में कुछ सावधानी आवश्यक है।

मैंने एक ऐसी प्रणाली पर काम किया जहां नेस्टेड दृश्यों के लगभग 6 स्तरों पर निर्मित 30 सेकंड के बाद प्रश्नों का समय समाप्त हो गया था और बेस टेबल के विरुद्ध प्रश्नों को फिर से लिखकर लगभग 100 के कारक द्वारा इन्हें गति देने में कामयाब रहा।

जिस प्रकार की समस्या उत्पन्न हो सकती है उसका एक सरल उदाहरण नीचे है।

CREATE VIEW MaxTypes
AS
SELECT
  [number],
  MAX(type) AS MaxType
  FROM [master].[dbo].[spt_values]
GROUP BY [number]

GO

CREATE VIEW MinTypes
AS
SELECT
  [number],
  MIN(type) AS MinType
  FROM [master].[dbo].[spt_values]
GROUP BY [number]

GO
SET STATISTICS IO ON

SELECT     MaxTypes.number, MinTypes.MinType, MaxTypes.MaxType
FROM         MinTypes INNER JOIN
                      MaxTypes ON MinTypes.number = MaxTypes.number
ORDER BY MaxTypes.number

/*
Gives

Table 'spt_values'. Scan count 2, logical reads 16, physical reads 0, 
read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
*/
GO

SELECT 
  [number],
  MAX(type) AS MaxType,
  MIN(type) AS MinType
  FROM [master].[dbo].[spt_values]
GROUP BY [number]
ORDER BY  [number]

/*
Gives

Table 'spt_values'. Scan count 1, logical reads 8, physical reads 0, 
read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
*/



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. कॉलम "dbo" या उपयोगकर्ता-परिभाषित फ़ंक्शन या कुल "dbo.FN_Split" नहीं मिल रहा है, या नाम अस्पष्ट है

  2. ऑटो इंक्रीमेंट लॉजिक के साथ मौजूदा टेबल की फील्ड को अपडेट करें

  3. एक ही टेबल में दो पहचान कॉलम बनाने में समस्या

  4. SQL सर्वर पीक प्रदर्शन सुनिश्चित करने के लिए 5 ट्रिक्स

  5. CASCADE DELETE को सक्षम करने के लिए मैं किसी तालिका को कैसे संपादित करूं?