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

टी-एसक्यूएल सीटीई भौतिकीकरण तकनीक एसक्यूएल सर्वर 2012 पर काम नहीं कर रही है

आप कोशिश कर सकते हैं एक बहु-चरण तालिका मूल्यवान फ़ंक्शन का उपयोग करना। इस तरह, सर्वर को टीवीएफ के परिणामों को तालिका चर में बदलने के लिए मजबूर किया जाता है। साथ ही, आप कोशिश कर सकते हैं अंतिम क्वेरी के प्रदर्शन को बेहतर बनाने के लिए इस तालिका प्रकार (प्राथमिक कुंजी, अद्वितीय, जांच) की घोषणा करते समय घोषणात्मक बाधाओं का उपयोग करना:

CREATE FUNCTION CocoJamboSchema.CocoJamboFunction(@parameters ...)
RETURNS @Results TABLE (
    Col1 INT NOT NULL,
    Col2 VARCHAR(10) NULL,
    ...
    PRIMARY KEY(Col1)
)
AS
BEGIN
    WITH MyCTE (...)
    AS
    (
        ...
    )
    INSERT @Results (...)
        FROM MyCTE;

    RETURN;
END;

SELECT ...
FROM CocoJamboSchema.CocoJamboFunction(param values) f
INNER JOIN MySchema.MyTable t ON f.Col1=t.Col1
ORDER BY t.Col1;

ORDER BY जोड़ना न भूलें आपकी अंतिम क्वेरी का खंड।

हाल ही में, मैंने इस समाधान का उपयोग किसी अन्य दृश्य (ViewB) द्वारा उपयोग किए गए दृश्य (ViewA, DISTINCT + LEFT JOIN + GETDATE ()) को अनुकूलित करने के लिए किया था। इस मामले में (ViewA) एक अनुक्रमित दृश्य बनाना असंभव था (DISTINCT + LEFT JOIN + GETDATE () के कारण)। इसके बजाय, मैंने एक बहु-कथन TVF बनाया जिसने अंतिम क्वेरी के तार्किक पठन (कुछ मामलों में अत्यधिक) को कम करके प्रदर्शन में सुधार किया।

नोट:बेशक, आप कोशिश कर सकते हैं इंडेक्स व्यू का उपयोग करना ।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. डिक्शनरी पास करें<स्ट्रिंग,इंट>संग्रहीत प्रक्रिया टी-एसक्यूएल

  2. SQL सर्वर (T-SQL) में दिनांक से वर्ष का दिन प्राप्त करें

  3. एएसपीनेट में डेटाबेस से छवि पुनर्प्राप्त करें

  4. SQL सर्वर 2008- तालिका की कमी प्राप्त करें

  5. SQL सर्वर का उपयोग करके varchar कॉलम में गैर-ASCII वर्ण खोजें