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

SQL सर्वर चर:लूप बनाम डुप्लिकेट?

DECLARE . की नियुक्ति सारहीन है (पार्सर को छोड़कर आपको DECLARE से पहले कोशिश करने और इसका उपयोग करने की अनुमति नहीं देगा )

यह वास्तव में केवल एक चर घोषित करता है, भले ही घोषणा वाले कोड के ब्लॉक को कितनी बार निष्पादित किया गया हो।

DECLARE अपने आप में एक निष्पादन योग्य कथन नहीं है। उदा.

IF 1 = 0
BEGIN
DECLARE @I INT
END

SELECT @I

ठीक काम करता है भले ही वह ब्लॉक कभी दर्ज नहीं किया गया हो। क्वेरी के निष्पादन से पहले भी चर के लिए मेमोरी को संकलन समय पर आरक्षित किया जाता है, यहां तक ​​कि निष्पादन प्रसंग

इसे देखने का एक तरीका है

DBCC FREEPROCCACHE;

GO

SELECT  m2.pages_allocated_count
        --If 2012 use the next line instead
        --,m2.pages_in_bytes/m2.page_size_in_bytes as pages_allocated_count
        ,m2.page_size_in_bytes
FROM   sys.dm_exec_cached_plans cp
       CROSS apply sys.dm_exec_sql_text(cp.plan_handle) t
       JOIN sys.dm_os_memory_objects m1 ON m1.memory_object_address = cp.memory_object_address
       JOIN sys.dm_os_memory_objects m2 ON m1.page_allocator_address = m2.page_allocator_address
WHERE  text LIKE '%this query%'
 AND m2.type = 'MEMOBJ_EXECUTE'

DECLARE @A0 VARCHAR(8000);
DECLARE @A1 VARCHAR(8000);
DECLARE @A2 VARCHAR(8000);
DECLARE @A3 VARCHAR(8000);
DECLARE @A4 VARCHAR(8000);
DECLARE @A5 VARCHAR(8000);
DECLARE @A6 VARCHAR(8000);
DECLARE @A7 VARCHAR(8000);
DECLARE @A8 VARCHAR(8000);
DECLARE @A9 VARCHAR(8000);
DECLARE @A10 VARCHAR(8000);
DECLARE @A11 VARCHAR(8000);
DECLARE @A12 VARCHAR(8000);
DECLARE @A13 VARCHAR(8000);
DECLARE @A14 VARCHAR(8000);
DECLARE @A15 VARCHAR(8000);
DECLARE @A16 VARCHAR(8000);
DECLARE @A17 VARCHAR(8000);
DECLARE @A18 VARCHAR(8000);
DECLARE @A19 VARCHAR(8000);
DECLARE @A20 VARCHAR(8000);

जो वर्तमान क्वेरी के लिए आरक्षित स्मृति दिखाता है, यदि आप घोषित चरों की संख्या को समायोजित करते हैं तो आप DECLARE के बावजूद स्मृति आरक्षित परिवर्तन देखेंगे ब्लॉक सही बैच के अंत में है।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एसक्यूएल सर्वर 2008 से एक्सेल में यूटीएफ -8 डेटा कैसे निर्यात करें

  2. SQL सर्वर पर INSERT या UPDATE के लिए समाधान

  3. ओवरलैप को अनदेखा करते हुए कुल मिनट खोजें (CTE में कर्सर आधारित उत्तर बदलें)

  4. लोकलहोस्ट की प्रतीक्षा में, हमेशा के लिए!

  5. SQL सर्वर कर्सर प्रकार - SQL सर्वर में स्टेटिक कर्सर क्या हैं | SQL सर्वर ट्यूटोरियल / TSQL ट्यूटोरियल