सवाल TEXTIMAGE_ON [प्राथमिक] क्या है?


मैंने कई तालिकाओं पर काम किया और सभी को यह बात थी:

CREATE TABLE Persons(
    [id] [int] IDENTITY(1,1) NOT NULL,
    [modified_on] [datetime] NULL,
    [modified_by] [varchar](200) NULL,
) 
ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

क्या है TEXTIMAGE_ON [PRIMARY] एसक्यूएल सर्वर / ट्रांजैक्ट-एसक्यूएल में?


76
2017-09-11 09:56


मूल


msdn.microsoft.com/en-AU/library/ms174979.aspx CTRL + F "textimage" - ta.speot.is
आप का पालन कर सकते हैं इस.. - IdontKnowEnglish


जवाब:


वहाँ से MSDN

TEXTIMAGE_ON {filegroup | "चूक" }

इंगित करता है कि पाठ, ntext, छवि, xml, varchar (अधिकतम),   nvarchar (अधिकतम), varbinary (अधिकतम), और सीएलआर उपयोगकर्ता परिभाषित प्रकार कॉलम   (ज्यामिति और भूगोल समेत) निर्दिष्ट पर संग्रहीत हैं   filegroup।

यदि कोई बड़ा मूल्य कॉलम नहीं है तो TEXTIMAGE_ON की अनुमति नहीं है   तालिका। यदि TEXTIMAGE_ON निर्दिष्ट नहीं किया जा सकता है <partition_scheme> है   निर्दिष्ट। यदि "डिफ़ॉल्ट" निर्दिष्ट है, या यदि TEXTIMAGE_ON नहीं है   बिल्कुल निर्दिष्ट, बड़े मूल्य कॉलम डिफ़ॉल्ट रूप से संग्रहीत हैं   filegroup। निर्दिष्ट किसी भी बड़े मूल्य कॉलम डेटा का भंडारण   तालिका बनाएं बाद में बदला नहीं जा सकता है।

नोट: इस संदर्भ में, डिफ़ॉल्ट एक कीवर्ड नहीं है। यह डिफ़ॉल्ट फ़ाइल समूह के लिए एक पहचानकर्ता है और इसे TEXTIMAGE_ON "डिफ़ॉल्ट" या TEXTIMAGE_ON [डिफ़ॉल्ट] में सीमित किया जाना चाहिए। यदि "डिफ़ॉल्ट" निर्दिष्ट किया गया है, तो वर्तमान सत्र के लिए QUOTED_IDENTIFIER विकल्प चालू होना चाहिए। यह डिफ़ॉल्ट सेटिंग है।


42
2017-09-11 09:59



नहीं समझे! - Mitul Sheth
@ मितुलशेथ: - आपको क्या स्पष्ट नहीं है? मैनुअल यह सब बोलता है, इसका उपयोग फ़ाइल समूह में संग्रहीत प्रकारों को इंगित करने के लिए किया जाता है - Rahul Tripathi
क्या कोई एक साधारण स्पष्टीकरण दे सकता है। एमएसडीएन मेरे लिए थोड़ा ऊंचा लगता है! - Mitul Sheth
@ R.T। क्या इसका मतलब यह है कि जब भी हम वर्कर (अधिकतम) का उपयोग करते हैं, तो हमें इसे निर्दिष्ट करना चाहिए? अगर हम नहीं करते तो क्या होगा? - Mitul Sheth
सामान्य रूप से, माइक्रोसॉफ्ट विवरण स्प्रिंगटाइम में मिसिसिपी नदी के पानी के रूप में स्पष्ट है। - Suncat2000


यह देखते हुए कि प्रारूप है:

CREATE TABLE TableName(...) TEXTIMAGE_ON { filegroup | "default" }

TEXTIMAGE सभी बड़े / असीमित आकार वाले फ़ील्ड प्रकारों को संदर्भित करता है: टेक्स्ट, एनटेक्स्ट, छवि, एक्सएमएल, वर्कर (अधिकतम), nvarchar (अधिकतम), varbinary (अधिकतम), और सीएलआर उपयोगकर्ता परिभाषित प्रकार कॉलम (ज्यामिति और भूगोल सहित)।

फिर, आपको यह जानना होगा कि फाइलें और फाइल समूह क्या हैं। एमएसडीएन प्रविष्टि से डेटाबेस फ़ाइलें और फ़ाइल समूह:

फ़ाइल

कम से कम, प्रत्येक SQL सर्वर डेटाबेस में दो ऑपरेटिंग सिस्टम फ़ाइलें होती हैं: एक डेटा फ़ाइल और एक लॉग फ़ाइल। डेटा फ़ाइलों में डेटा और ऑब्जेक्ट्स जैसे टेबल, इंडेक्स, संग्रहीत प्रक्रियाएं और विचार शामिल होते हैं। लॉग फ़ाइलों में वह जानकारी होती है जो डेटाबेस में सभी लेनदेन को पुनर्प्राप्त करने के लिए आवश्यक होती है। डेटा फ़ाइलों को आवंटन और प्रशासन उद्देश्यों के लिए फ़ाइल समूह में एक साथ समूहीकृत किया जा सकता है।

filegroups

प्रत्येक डेटाबेस में प्राथमिक फ़ाइल समूह होता है। इस फ़ाइल समूह में प्राथमिक डेटा फ़ाइल और कोई भी माध्यमिक फ़ाइलें शामिल हैं जो अन्य फ़ाइल समूह में नहीं रखी जाती हैं। उपयोगकर्ता द्वारा परिभाषित फ़ाइल समूह को डेटा फ़ाइलों को व्यवस्थापकीय, डेटा आवंटन और प्लेसमेंट उद्देश्यों के लिए समूहबद्ध करने के लिए बनाया जा सकता है।

इसलिए,

CREATE TABLE ... ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

कुछ हद तक अनावश्यक प्रतीत होता है, क्योंकि यह कह रहा है कि उल्लिखित बड़े-पाठ-मूल्य कॉलम प्राथमिक फ़ाइल समूह में संग्रहीत किए जाने चाहिए, जो वास्तव में डिफ़ॉल्ट क्रिया है।

कस्टम नामक एक कस्टम फ़ाइल समूह के अस्तित्व को मानते हुए, आप शायद इस तरह कुछ लिखेंगे:

CREATE TABLE ... ON [PRIMARY] TEXTIMAGE_ON [CUSTOM]

आप बड़े बाइनरी या टेक्स्ट को स्टोर करने के लिए एक कस्टम फ़ाइल समूह बनायेंगे, और इस मामले में 'सामान्य' फ़ील्ड जानकारी प्राथमिक फ़ाइल समूह में डेटा फ़ाइल में बैठेगी, जबकि संबंधित 'बड़े' फ़ील्ड भौतिक रूप से अलग डेटा फ़ाइल में संग्रहीत किए जाएंगे (द्वितीयक कस्टम फ़ाइल समूह में)।

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


118
2017-11-06 08:11



इसे उपलब्ध कराने के लिए धन्यवाद बहुत स्वीकार किए गए एक से अधिक समझने योग्य जवाब! - Zero3
हां, यह स्वीकार्य उत्तर होना चाहिए था। - Scott Marlowe
@ मितुल शेथ एक बेहतर सही उत्तर चुनने में बहुत देर हो चुकी है :) - DaveBoltman


यदि आपके पास कोई बड़ा टेक्स्ट कॉलम नहीं है i.e. टेक्स्ट, ntext, image, xml, varchar (max), nvarchar (max), varbinary (max), और CLR तब आप बस उपयोग कर सकते हैं:

CREATE TABLE Persons(
[id] [int] IDENTITY(1,1) NOT NULL,
[modified_on] [datetime] NULL,
[modified_by] [varchar](200) NULL,)ON [PRIMARY]

1
2017-10-19 05:45



संदेश 156, स्तर 15, राज्य 1, रेखा 12 कीवर्ड 'तालिका' के पास गलत वाक्यविन्यास। - DaveBoltman