প্রযোজনায় হাইয়ারচি আইডি কেউ ব্যবহার করছেন? এটা কি নির্ভরযোগ্য?


21

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

প্রকৃত উত্পাদন সিস্টেমে হাইরেচিআইডি ব্যবহার করার ক্ষেত্রে আপনার অভিজ্ঞতা কী?

আপনি হায়ারারচিআইডি এর বিকল্পগুলি বেছে নেওয়ার সময় আপনি কোন মানদণ্ড ব্যবহার করেছেন?

উত্তর:


8

আমি হাইয়ারকিডিআইডি প্রয়োগ করেছি এবং এটি ভাল পারফরম্যান্স এবং সহজে ব্যবহারযোগ্য সরবরাহের জন্য খুঁজে পেয়েছি।

আমি এটি তুলনামূলকভাবে ছোট ডেটাসেটগুলিতে ব্যবহার করেছি (দশ সহস্র সারি) দশটি শাখা গভীর পর্যন্ত শ্রেণিবিন্যাস সহ।

কেন এটি ব্যবহার করবেন? হাইয়ারকিডআইডি টাইপটি বেশ কয়েকটি সহায়ক পদ্ধতি সরবরাহ করে (যেমন IsDescendantOf) যা আপনার নিজের পদার্থের পথকে ঘোরানোর চেয়ে আপনার কাজকে সহজ করে তোলে।

Stackoverflow উপর পল নিলসেন এর মন্তব্য আমাকে বিভ্রান্তিকর হয় - HierarchyID হয় একটি রূপায়িত পথ। আমি তার উত্তরের নীচে এই মন্তব্যটির সাথে একমত হতে আগ্রহী ।

আরও ভাল প্রশ্ন হতে পারে 'কেন এটি ব্যবহার করবেন না'। এটি ব্যবহার করা সহজ, প্রচুর কার্যকারিতা সরবরাহ করে যা আপনি অন্যথায় নিজের জন্য লেখেন এবং ভাল সম্পাদন করেন (আমার সীমিত পরীক্ষায়)।


+1 আপনি কীভাবে আপনার ডেটার অখণ্ডতা নিশ্চিত করছেন? কোনও অনাথ নেই তা নিশ্চিত করতে আপনি কি সীমাবদ্ধতাগুলি ব্যবহার করতে পারেন?
এ কে

3
স্মৃতি থেকে আপনি পারেন। প্যারেন্ট মানটি নির্ধারণ করতে আপনি হায়ারার্কআইডি জুড়ে একটি ফাংশন ব্যবহার করবেন, সেই মানটির জন্য অবিচ্ছিন্ন গণিত কলাম তৈরি করুন এবং তারপরে সেই মান এবং পিতামাতার মধ্যে এফকে বাধা প্রয়োগ করুন।
কर्क ব্রডহર્স্ট

5

এটি কার্কের প্রশ্নের উত্তর 'এটি কেন ব্যবহার করবেন না (হাইয়ারকিআইডি)'। বস্তুগত পাথের তুলনায়, কিছু গুরুত্বপূর্ণ ক্ষেত্রে HierarchyId কম পারফর্মেন্ট এবং এর সাথে কাজ করার পক্ষে কম সুবিধাজনক বলে মনে হচ্ছে।

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

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

সুতরাং আমি পল নীলসনের সাথে সম্পূর্ণরূপে একমত, যিনি তাঁর "মাইক্রোসফ্ট এসকিউএল সার্ভার® ২০০ Bible বাইবেল" শীর্ষক চমৎকার বইটিতে লিখেছেন: "নতুন হাইয়ারকিআইডি কোনও বিতর্ক ছাড়াই নয় It's এটি নতুন এবং প্রচুর প্রেস এবং ডেমো সময় পেয়েছে তবে আমি ' আমি নিশ্চিত নই যে এটি এমন একটি সমস্যা যার জন্য আরও একটি সমাধান প্রয়োজন needed "


3

আমার সংস্থার সরাসরি বিক্রয়, বহু-স্তরের বিপণন সফ্টওয়্যারগুলিতে HeirachyID ব্যবহার করে। এটা কাজ করে। আমি এটি দিয়ে আসলেই কোনও কাজ করি নি আমি কেবল জানি আমরা এটি ব্যবহার করছি।

এটির সাথে আমি সবচেয়ে বড় সমস্যাটি দেখেছি এটি হ'ল আমরা আরও সেট-বেসড হওয়ার পরিবর্তে একটি লুপিং ফ্যাশনে স্তরগুলি পুনরাবৃত্তি করছি। সে ক্ষেত্রে এটি আমাদের পক্ষে সত্যিকারের ভাল অভিনয় করে না, তবে আমি নিশ্চিত নই যে এটির প্রকার বা এটির প্রয়োগের ক্ষেত্রে আমাদের সমস্যা আছে কিনা।


জ্যাক, আপনার টেবিলগুলি কত বড়? আপনি কীভাবে বিকল্পগুলির উপরে হাইয়ারচি আইড ব্যবহার করতে পছন্দ করেছেন?
এ কে

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

1

শ্রেণিবিন্যাসের একটি সমস্যা হ'ল আপনি বিক্রেতা লক-ইন পান। তবে অভ্যন্তরীণভাবে কীভাবে সবকিছু কাজ করে সে সম্পর্কে আমি অ্যাডাম মিলাজোর একটি দুর্দান্ত নিবন্ধ পেয়েছি:

http://www.adammil.net/blog/view.php?id=100

এটির সাহায্যে আমি এমএসএসকিউএল থেকে আমার ডেটা সেটটিকে রূপান্তর করতে একটি পোস্টগ্রিস স্ক্রিপ্ট লিখতে সক্ষম হয়েছি। এটিকে অ্যাডভেঞ্চার ওয়ার্কস ডাটাবেস পোস্টগ্র্রেসে আমদানি করতে আমি লিখেছিলাম এমন স্ক্রিপ্টেও অন্তর্ভুক্ত করেছে:

https://github.com/lorint/AdventureWorks-for-Postgres

সেখানে ইনস্টল.এসকিউএল ফাইলটিতে কেবল "হাইয়ারকিরিড" অনুসন্ধান করুন এবং শীঘ্রই আপনি এটি রূপান্তর করার জন্য রেফারেন্স পাবেন।


0

আমাদের দলটি এটি উত্পাদনে কার্যকর করেছে, প্রথমে পারফরম্যান্সটি ভাল, 2 বছর পরে, টেবিলটিতে এখন 430,000 সারি রয়েছে এবং গেট্রুট এবং গেটডেন্ডেন্ট 3 সেকেন্ড সময় নেয়, রেকর্ড সন্নিবেশের জন্য পরবর্তী আইডির মান গণনা করার জন্য উভয়েরই প্রয়োজন। এখন একটি একক সাবট্রি সন্নিবেশ করতে প্রায় 16 সেকেন্ড সময় লাগে যা মোটেই গ্রহণযোগ্য নয়।

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