এসকিউএল সার্ভারে আমার কখন এক্সএমএল ডেটা ব্যবহার করা উচিত?


15

মাইক্রোসফ্ট এসকিউএল সার্ভারে আমার কখন এক্সএমএল ডেটা ব্যবহার করা উচিত?

উত্তর:


1

আমি একই রকম কাজ করেছি যেখানে আমি স্টোরের জন্য এক্সএমএলে অবজেক্টের ডেটা সিরিয়াল করি। এটি জটিল বস্তুর জন্য ডেটা রাখার জন্য সারণী, কলাম এবং স্থানে থাকা সম্পর্কের বোঝা সরিয়ে দেয়। ফলাফলটি এক্সএমএল অনুসৃত একটি স্কিমা ব্যবহার করে প্রক্রিয়াটিকে সাহায্য করা যেতে পারে এবং ডাটাবেস টেবিলগুলি প্রশ্নযুক্ত বস্তুগুলির মেটা তথ্যের জন্য ব্যবহার করা যেতে পারে। আমার ক্ষেত্রে, অবজেক্ট লেআউটের জন্য ডেটাবেস স্কিমা প্রসারিত করা বড় কাজ হবে!


এই উত্তরটি আমার মতামতের সাথে সবচেয়ে কাছের মিলছে। আপনি যদি এক্সকিউরি ব্যবহার করে অন্তর্নিহিত ডেটাটি জিজ্ঞাসা করতে পারেন তবে আপনার যদি হয় সাধারণ টেবিল ভিত্তিক ডেটাসেটটি ফেরত দিতে হয় বা ফলাফলের জন্য একটি নতুন ফর্ম্যাট তৈরি করতে হয়। আমার প্রশ্নটি মূলত যখন এক্সএমএল ব্যবহার করা সম্ভব হয় তখন জিজ্ঞাসা করা হয়েছিল যে আমার নিজের মতামত রয়েছে এবং অন্যের মতামত শুনতে চাই এবং আপনার উত্তরটি এর জন্য একটি বাস্তব, সম্ভাব্য ব্যবহারের ক্ষেত্রে ব্যাখ্যা করে।
ফারলিগঅ্যাপ্ট্রেডেন

11

ব্যক্তিগতভাবে, আমি এসকিউএল সার্ভারে এক্সএমএল ক্ষেত্রের ধরণটি আগে কখনও ব্যবহার করি নি, এবং তারা এই বৈশিষ্ট্যটি যুক্ত করার পর থেকে আমি প্রচুর ডাটাবেস প্রোগ্রামিং করেছি। সর্বদা আমার কাছে মনে হয়েছিল যে কোনও ডাটাবেসে XML বিষয়বস্তু নেটিভভাবে ব্যবহার করার জন্য একটি প্রোগ্রাম্যাটিক এবং পারফরম্যান্সের ওভারহেড। আমি সত্যই ভেবেছিলাম এটি একটি চতুরতা, কারণ 2000 এর দশকের গোড়ার দিকে সবাই এক্সএমএল ট্রেনে উঠেছিল। "ওহ এক্সএমএল গরম, সুতরাং এসকিউএল সার্ভারে এটি যুক্ত করা যাক যাতে আমরা পাসে না দেখি।"

আমি দেখতে পাচ্ছি সেরা ব্যবসায়ের ক্ষেত্রে XML- ভিত্তিক ডেটা বার্তাগুলি রেকর্ডিংয়ের ক্ষেত্রে হতে পারে যেখানে আপনি তাদের কাঠামো এবং ডেটাতে উঁকি দিতে চাইতে পারেন, তবে ব্যবসায় বা আইনী কারণে মূল বার্তার অখণ্ডতা বজায় রাখতে চান। এক্সএমএলটিকে টেবিলের কাঠামোয় অনুবাদ করতে ওভারহেড খুব দুর্দান্ত হতে পারে তবে এসকিউএল সার্ভারে এক্সএমএল ক্ষমতা ব্যবহার করা কেবলমাত্র এটি ব্যবহারের জন্য ওয়ারেন্ট দেওয়ার জন্য পর্যাপ্ত তথ্য পরীক্ষার ব্যয় হ্রাস করতে পারে।

আপনি এটি ব্যবহার করতে চাইছেন এমন আরও কয়েকটি কারণ সম্ভবত রয়েছে তবে আমি স্পষ্ট করে মনে করি এসকিউএল সার্ভারে এক্সএমএল-এর সাথে হগ-ওয়াইল্ড যাওয়ার আগে আপনার সুখের অন্যান্য পথগুলি বিবেচনা করা উচিত যদি না আপনি যদি এটির জন্য নির্দিষ্ট ব্যবসায়িক কারণ না করেন। যদি আরও বোধ করা হয় তবে একটি ভারচার (সর্বোচ্চ) বা পাঠ্য ক্ষেত্রটি ব্যবহার করুন।

অবশ্যই আমার মতামত :)


আমি জানি এটি একটি) এই আসল উত্তরটি পোস্ট করার কয়েক বছর পরে, এবং খ) এক্সএমএলের সাথে প্রয়োজনীয়ভাবে প্রাসঙ্গিক নয়, তবে এসকিউএল সার্ভারে জেএসওএন পদ্ধতি অন্তর্ভুক্তি সম্পর্কে আমি এখন যেমন অনুভব করি তেমনি আমি এক্সএমএল সম্পর্কেও একইভাবে অনুভব করি।
কোকো ওয়ারওয়্যার

আমি অনুমান করি যে আধুনিক নোএসকিউএল (এবং সংকর) স্টোরেজ বিকল্পগুলির আগমনটি মূল ধরণের প্রশ্নটিকে রিডান্ট্যান্ট করে তোলে, আমার মতামত এরপরে অনির্দিষ্টকৃত ডেটা সংরক্ষণ করার দিকে ততটা আগ্রহী ছিল যা ডেটাবেসে আরকেন স্কিমা তৈরি করবে না।
ফারলিগঅ্যাপ্ট্রেডেন

8

আমি কেবলমাত্র কয়েকটি পরিস্থিতি পেয়েছি যেখানে আমি এসকিউএল সার্ভারে এক্সএমএল ডেটা টাইপ সক্রিয়ভাবে ব্যবহার করতে চাই। এটি আমার মাথার উপরের অংশটি থেকে কম থেকে শুরু করে আকর্ষণীয় পর্যন্ত:

  • অন্যান্য অ্যাপ্লিকেশন দ্বারা উত্পাদিত এক্সএমএল প্রতিক্রিয়াগুলি সংরক্ষণ / সংরক্ষণাগার
    • উদাহরণস্বরূপ, আমরা একটি কাস্টম সিলভারলাইট অ্যাপ্লিকেশন এবং ডায়নামিক্স এক্স এর মধ্যে যোগাযোগের জন্য অ্যাপ্লিকেশন ইন্টিগ্রেশন ফ্রেমওয়ার্ক (এআইএফ) ব্যবহার করি। এই অ্যাপ্লিকেশনগুলির মধ্যে যোগাযোগের সমস্যা সমাধানের জন্য আমরা ডাটাবেসে অভ্যন্তরীণ এবং আউটবাউন্ড উভয় বার্তা সংরক্ষণ করি
    • ক্ষেত্রের ধরণটি জেনেরিক স্ট্রিং ধরণের (যেমন VARCHAR) এর পরিবর্তে এক্সএমএল হওয়ায় আমরা কিছু নির্দিষ্ট মানদণ্ডের সাথে মেলে এমন বার্তাগুলির জন্য বিশেষভাবে ক্যোয়ারী করতে এক্সকুরি ব্যবহার করতে সক্ষম হয়েছি। এটি সাধারণ স্ট্রিংয়ের মতো মেলাতে আরও অনেক বেশি কঠিন
  • সংশ্লেষিত প্রতিক্রিয়া বার্তাটি ক্যাচিং / চালিয়ে যাওয়া
    • একটি ট্রিগার বা অ্যাপ্লিকেশন কোড সহ এক্সএমএল ক্ষেত্র আপডেট করুন, যা একটি গণিত কলামকে নকল করবে
    • ভিত্তিক কলিং অ্যাপ্লিকেশনটিতে এক্সএমএল প্রতিক্রিয়াটি পুনরুত্থিত করার পরিবর্তে প্রতিটি কলের পরিবর্তে কেবল সারিটি সজ্জিত করা হলে আপনি ওভারহেড ব্যয় করতে পারেন
    • আপডেটগুলি / INSERT- র তুলনায় যখন নির্বাচনগুলি অনেক বেশি ঘন ঘন থাকে তখন এটি সবচেয়ে ভাল কাজ করে, যা বেশিরভাগ অ্যাপ্লিকেশনের ক্ষেত্রে সত্য হতে থাকে s
  • একক ক্ষেত্রে একাধিক মান সংরক্ষণ করা
    • আমি দেখেছি যে অনুশীলনগুলির মধ্যে একটি হ'ল একক ক্ষেত্রে মান সংগ্রহের জন্য এক্সএমএল ডেটা টাইপ ব্যবহার
    • একটি সুবিধা হ'ল আপনার সাধারণ কী / মান স্টোরের জন্য অতিরিক্ত টেবিলের সেট ডিজাইনের দরকার নেই
    • এর একটি নেতিবাচক দিকটি হ'ল ডেটা সম্পূর্ণরূপে স্বাভাবিক হয় না, কোয়েরিটি কম স্পষ্ট করে তোলে
    • তবে, উপরে উল্লিখিত হিসাবে, আপনি সনাক্তকরণের মানদণ্ডের সাথে মেলে এমন সারিগুলি নির্বাচন করতে সেই এক্সএমএল ক্ষেত্রের এক্সকিউরি ব্যবহার করতে পারেন, যার ফলে আংশিকভাবে সম্পূর্ণরূপে স্বাভাবিক না হওয়ার প্রভাবটি আংশিকভাবে কমিয়ে দেওয়া হয়েছে।

যা যা বলেছিল, 99% সময়, স্কিমা ডিজাইনের সময় আমার এক্সএমএল ক্ষেত্রের একেবারেই দরকার নেই।


4

এসকিউএল সার্ভারে এক্সএমএল ডেটা টাইপটি আমি কয়েকবার দেখেছি এটি মূলত এমন ক্ষেত্র হিসাবে ব্যবহৃত হয়েছে যা ডাটাবেসের অন্য যেভাবে অনুসন্ধান করা হয়েছিল, আপনার কাছে যদি প্রচুর পরিমাণে ডেটা থাকে তবে কিছু খুব খারাপ পারফরম্যান্সের প্রভাব থাকতে পারে । এটির জন্য এসকিউএল সার্ভার নয় এক্সএমএল সার্ভার বলে একটি কারণ রয়েছে। :-) এক্সএমএলের বিপরীতে যে প্রশ্নগুলি করা হয় তা কেবল নিয়মিত নির্বাচন করা কোয়েরি হিসাবে তত দ্রুত হয় না।

আমি এটি দেখতে পেলাম যে এটি এক্সএমএল সংরক্ষণ করতে ব্যবহার করা হচ্ছে যা খুব বেশি অনুসন্ধান করা হয়নি, বলুন এক্সএমএল ডেটা টাইপে সম্পূর্ণ এক্সএমএল ডকুমেন্টটি সংরক্ষণ করে, তবে অনুসন্ধানযোগ্য ক্ষেত্রগুলি (কীগুলি) এক্সএমএল ডকুমেন্টের সাথে পৃথকভাবে সঞ্চিত রয়েছে। আপনি আপনার ডকুমেন্টটি যেখানে দেখতে চান সেই বিন্দুতে পৌঁছালে আপনি আপনার তথ্যটি দ্রুত জিজ্ঞাসা করতে এবং এক্সএমএল ডকুমেন্টটি টানতে পারেন। আমাকে আসলে ফিরে যেতে হয়েছিল এবং এমন অনেকগুলি অ্যাপ্লিকেশন দিয়ে করতে হয়েছিল যেখানে লোকেরা এক্সএমএল ডেটা টাইপটিকে একটি ভারী অনুসন্ধান ক্ষেত্র হিসাবে ব্যবহার করার চেষ্টা করেছিল এবং ডেটা এমন পর্যায়ে পৌঁছেছে যেখানে কোয়েরিটি খুব ধীর হয়ে গেছে।


4

আমি বেশিরভাগ এএসএমএক্স ওয়েব পরিষেবাদি বা ডাব্লুসিএফ পরিষেবাদি সম্পর্কিত লগিংয়ের উদ্দেশ্যে এক্সএমএল টাইপ ফিল্ড ব্যবহার করেছি। আপনি অনুরোধ বা প্রতিক্রিয়া বার্তা সংরক্ষণ করতে পারেন।

বেশিরভাগ সময়, আপনি রেফারেন্সের উদ্দেশ্যে ডিবিতে এক্সএমএল সংরক্ষণ করেন - আপনার নিয়মিত ব্যবসায়িক ক্রিয়াকলাপের জন্য নয় (কোড থেকে প্রতি 5 সেকেন্ডে এটি জিজ্ঞাসা করবেন না)। আপনি যদি নিজেকে এমনটি করতে দেখেন তবে আপনি সাধারণত যে ক্ষেত্রগুলি প্রায়শই জিজ্ঞাসা করেন বা বেশিরভাগ সময় ব্যবহার করেন তা নির্ধারণ করুন এবং তাদের জন্য পৃথক কলাম তৈরি করুন। এইভাবে, আপনি যখন ডিবিতে এক্সএমএল সংরক্ষণ করছেন, আপনি এই ক্ষেত্রগুলি নিষ্কাশন করতে এবং তাদের সংশ্লিষ্ট কলামগুলিতে সংরক্ষণ করতে পারেন। পরে এগুলি পুনরুদ্ধার করার সময় আপনার এক্সএমএল ডকুমেন্টের জন্য কোয়েরির দরকার নেই আপনি কেবল এই উদ্দেশ্যে তৈরি করা কলামগুলি ব্যবহার করতে পারেন।


1

এসকিএল সার্ভারে এক্সএমএল ক্ষেত্রগুলিকে অনুমতি দেওয়ার জন্য কী কী শর্ত থাকতে হবে তা বিবেচনা করার সময় এই পরিস্থিতিগুলি এক ঝাঁকুনিতে সুরক্ষিতভাবে মনে আসে:

  • বিনিময়ের জন্য বাইনারি ডেটা এনকোড করা যেখানে আপনি সংস্থানটির নিয়ন্ত্রণের মতো এসিড চান
  • গতিশীল তথ্য ব্যবহার করে সম্পূর্ণরূপে পুনর্গঠিত হবে এমন নথি খণ্ডগুলি
  • ব্যবহারকারী আপনার দ্বারা বিচ্ছিন্ন করতে চান এমন নথি বা টুকরো জমা দিয়েছেন এবং অন্তত অন্তর্বর্তীকালীনভাবে সরাসরি ফাইল সিস্টেমটি বন্ধ রাখুন।

-2

আমি ডাটাবেসে একক কলে কাঠামোগত ডেটা সংরক্ষণের জন্য ক্লায়েন্ট-সার্ভার অ্যাপ্লিকেশনগুলিতে এক্সএমএলটি ব্যাপকভাবে ব্যবহার করি। উদাহরণ হিসাবে বিশদ লাইনগুলি সহ একটি চালান নিন। ক্লায়েন্টটি XML এ ব্যবসায়িক ক্রিয়াকলাপটি সিরিয়ালিয়াস করা এবং একক কলে একটি সঞ্চিত প্রোকে পাস করা সহজ। Procোকানো বা আপডেটের প্রয়োজন কিনা তা প্র্যাকটি সিদ্ধান্ত নেয়; এটি সার্ভার-সাইড লেনদেনের মধ্যে এবং ক্লায়েন্টকে একাধিক রাউন্ড ট্রিপ না করে বিশদ রেকর্ডে বরাদ্দ করতে প্যারেন্ট ইনভয়েস আইডি (একটি পরিচয় কলাম) পেতে পারে। শিরোনাম রেকর্ডটি নির্দিষ্ট করতে আমার 20 বা ততোধিক প্যারামিটারের প্রয়োজন নেই এবং প্রতি চালান লাইনের জন্য আমাকে কল করতে হবে না। এছাড়াও, ক্লায়েন্টকে স্পর্শ না করে স্কিমা পরিবর্তন করা, বা লগিং / অডিটিং প্রবর্তন করা প্রায়শই সম্ভব।


আমি অবাক হয়েছি কেন নিম্নাঞ্চলীরা। কোন ডাউনভোটাররা আমাকে আলোকিত করার জন্য যত্নশীল?
রিক ব্র্যাডলি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.