LINQ-to-SQL বনাম সঞ্চিত পদ্ধতি? [বন্ধ]


188

আমি এখানে স্ট্যাকওভারফ্লোতে (লিঙ্কউতে বিগিনিয়ার্স গাইড ) পোস্টারটিতে "লিঙ্গনিয়ার গাইড টু লিনকিউ" পোস্টটি দেখেছি , তবে একটি ফলো-আপ প্রশ্ন ছিল:

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

সুতরাং, প্রশ্নটি হ'ল: সাধারণ ডেটা পুনরুদ্ধারের জন্য, লিনিক-টু-এসকিউএল বা সঞ্চিত প্রকোসগুলি ভাল? কোন নির্দিষ্ট প্রো বা কন এর?

ধন্যবাদ।

উত্তর:


192

স্প্রোকের তুলনায় লিনকিউ এর কিছু সুবিধা:

  1. প্রকার সুরক্ষা : আমি মনে করি আমরা সকলেই এটি বুঝতে পারি।
  2. বিমূর্ততা : এটি লিনকিউ-টু-সত্তাগুলির সাথে বিশেষভাবে সত্য । এই বিমূর্ততা ফ্রেমওয়ার্কটি অতিরিক্ত উন্নতিগুলি যোগ করার অনুমতি দেয় যা আপনি সহজেই নিতে পারেন। পিনকিউ লিনকিউতে মাল্টি-থ্রেডিং সমর্থন যুক্ত করার একটি উদাহরণ। এই সমর্থন যুক্ত করতে কোড পরিবর্তনগুলি ন্যূনতম। এই ডেটা অ্যাক্সেস কোডটি করা খুব কঠিন হবে যা কেবল স্প্রোকসকে কল করে।
  3. ডিবাগিং সমর্থন : কোয়েরিগুলি ডিবাগ করার জন্য আমি কোনও নেট নেট ডিবাগার ব্যবহার করতে পারি। স্প্রোকস সহ, আপনি সহজেই এসকিউএল ডিবাগ করতে পারবেন না এবং সেই অভিজ্ঞতাটি মূলত আপনার ডাটাবেস বিক্রেতার সাথে আবদ্ধ (এমএস এসকিউএল সার্ভার একটি কোয়েরি বিশ্লেষক সরবরাহ করে তবে প্রায়শই এটি পর্যাপ্ত নয়)।
  4. বিক্রেতার অজিনস্টিক : লিনিক্যু প্রচুর ডাটাবেসের সাথে কাজ করে এবং সমর্থিত ডাটাবেসের সংখ্যা কেবল বাড়বে। স্প্রোকগুলি সর্বদা ডেটাবেসগুলির মধ্যে পোর্টেবল হয় না, হয় ভিন্ন ভিন্ন সিনট্যাক্স বা বৈশিষ্ট্য সহায়তার কারণে (যদি ডেটাবেস স্প্রোকসকে সমর্থন করে)।
  5. স্থাপনা : অন্যরা ইতিমধ্যে এটি উল্লেখ করেছেন, তবে স্প্রোকের সেট স্থাপনের চেয়ে একক সমাবেশ স্থাপন করা আরও সহজ। এটি # 4 এর সাথেও জড়িত।
  6. আরও সহজ : আপনাকে ডেটা অ্যাক্সেস করতে টি-এসকিউএল শিখতে হবে না, বা স্প্রোকসকে কল করার জন্য আপনাকে প্রয়োজনীয় ডেটা অ্যাক্সেস এআইপি (যেমন ADO.NET) শিখতে হবে না। এটি # 3 এবং # 4 এর সাথে সম্পর্কিত।

লিনকিউ বনাম স্প্রোকের কিছু অসুবিধা:

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

সুরক্ষা এবং পরিচালনতা এমন একটি বিষয় যা সম্পর্কে লোকেরা তর্ক করে।

  1. সুরক্ষা : উদাহরণস্বরূপ, আপনি সরাসরি টেবিলগুলিতে অ্যাক্সেস সীমাবদ্ধ করে আপনার সংবেদনশীল ডেটা রক্ষা করতে পারেন, এবং এসিএলগুলিকে স্প্রোকগুলিতে স্থাপন করতে পারেন। LINQ সঙ্গে, যাইহোক, আপনি এখনও updatable টেবিলের উপর টেবিল এবং এর পরিবর্তে করা ACLs থেকে সরাসরি প্রবেশাধিকার সীমিত করতে পারে মতামত (আপনার ডাটাবেস সমর্থন updatable মতামত অভিমানী) একটি অনুরূপ শেষ অর্জন করা।
  2. পরিচালনাযোগ্যতা : দর্শন ব্যবহার করা আপনাকে আপনার অ্যাপ্লিকেশনটি স্কিমা পরিবর্তনগুলি (টেবিলের স্বাভাবিককরণের মতো) থেকে বিরতিহীনভাবে রক্ষা করার সুবিধাও দেয়। আপনার ডেটা অ্যাক্সেস কোড পরিবর্তন করার প্রয়োজন ছাড়াই আপনি ভিউটি আপডেট করতে পারেন।

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


32
"লিনকিউ প্রচুর ডাটাবেস নিয়ে কাজ করে" তবে লিনকটিওএসকিউএল কেবল এসকিউএল সার্ভারকে সমর্থন করে।
রাসেলএইচ

7
লিনকিউ থেকে সত্তা এমএসএসকিউএল ছাড়া পোস্টগ্র্রেস এবং মাইএসকিউএল সহ কাজ করে। নিশ্চিত নয়, তবে আমি ভেবেছিলাম ওরাকল এর আশেপাশে কিছু আছে।
বিবিকিচিকেনরোবট

ডেভার্ট ডটকনেক্টের একটি ওরাকল জিনিস রয়েছে তবে এটি জাহান্নাম হিসাবে বগি। এছাড়াও, আমি আপডেট করার জন্য ডাটাবেস থেকে ডেটা নির্বাচন করে ডেটা বাছাই করে চালু করা পারফরম্যান্স ঘাটতিটি অতিক্রম করতে পারি না (সংযুক্তি (এটিও সম্ভব, তবে এটি বরং পপিও)
এড জেমস

5
আমি এখানে কাউকে কোড পুনরায় ব্যবহারের উল্লেখ করতে দেখিনি। আপনি কোনও ভিবি 6 বা এ্যাস্প বা ফাইল নির্মাতা প্রো অ্যাপ্লিকেশনটিতে আপনাকে লিনাক পুনরায় ব্যবহার করতে পারবেন না। আপনি যদি ডাটাবেসে কিছু রাখেন তবে এটি সর্বদা ব্যবহার করা যেতে পারে। আপনি এটিতে লিনাক দিয়ে একটি ডেল তৈরি করতে পারেন আমার ধারণা তবে এটি অতিরিক্ত জটিল এবং কৃপণ ইমো হয়ে উঠছে। পুনরায় ব্যবহার করা যেতে পারে এমন কোনও ফাংশন বা সঞ্চিত প্রোক যুক্ত করা অনেক সহজ।
মাইককুলস

টিএসকিউএল-এ কোড পুনরায় ব্যবহারের কথা বলছি (1) ভাগ্যবান স্কয়ারের অবলম্বন না করে কোনও সঞ্চিত পদ্ধতির ফলাফলকে একটি টেম্প টেবিলের মধ্যে সংরক্ষণের চেষ্টা করা সৌভাগ্য। (২) আপনার সমস্ত প্রকল্পগুলি / ক্রিয়াকলাপগুলি সংগঠিত করতে আপনি তেমন কিছু করতে পারবেন না; নাম স্থানটি দ্রুত বিশৃঙ্খলা হয়ে যায়। (3) আপনি একটি শক্তিশালী নির্বাচন বিবৃতি লিখেছেন কিন্তু এখন আপনি চান যে ব্যবহারকারীটি যে কলামটি বাছাই করা যায় তা বেছে নিতে সক্ষম হবে - টিএসকিউএল-এ আপনাকে সিটিই ব্যবহার করতে হবে যা প্রতিটি কলামের উপর সারি করা যেতে পারে যা সাজানো যেতে পারে; লিনকুতে এটি পরবর্তী চিন্তাভাবনার সাথে কয়েকটি ifবিবৃতি দিয়ে সমাধান করা যেতে পারে ।
স্পারবাইটস

77

আমি সাধারণত সমস্ত কিছু সঞ্চিত পদ্ধতিতে রাখার প্রবক্তা, সমস্ত কারণেই বছরের পর বছর ধরে ডিবিএরা ক্ষতি করে চলেছে। লিনকের ক্ষেত্রে এটি সত্য যে সাধারণ সিআরইউডি প্রশ্নের সাথে কোনও পারফরম্যান্সের পার্থক্য থাকবে না।

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

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

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

লিনকের সাথে সম্ভবত একটি হাইবার্ড অ্যাপ্রোচ ভাল লাগবে? লিঙ্ক অবশ্যই স্টোরেজ পদ্ধতিতে কল করতে ব্যবহৃত হতে পারে।


9
আপনার অবহেলা করা একটি বৈশিষ্ট্য হ'ল সুরক্ষা। লিনকের সাথে, আপনাকে সরাসরি অ্যাপ্লিকেশনটিতে টেবিলগুলি প্রকাশ করতে হবে। সঞ্চিত প্রক্রিয়াগুলির সাহায্যে আপনি proc প্রকোপগুলিতে অ্যাক্সেস সীমাবদ্ধ করতে পারেন এবং আপনার ব্যবসায়ের প্রয়োজনীয়তা প্রয়োগ করতে পারেন।
নোটমে

19
"আপনার সংকলিত কোডটি পরিবর্তন করার জন্য আপনাকে বাধ্য না করে একটি ডিবিএর ডেটা মডেলটিতে পরিবর্তন আনার স্বাধীনতা নেই" " কেন আপনি এটাকে সমর্থন করবেন? কারওরও পরিবর্তন আনতে "স্বাধীনতা" থাকা উচিত নয়, এটি কনফিগারেশন পরিচালনার মূল বিষয়। নির্বিশেষে মোতায়েনের আগে পরিবর্তনগুলি দেব, পরীক্ষা ইত্যাদির মধ্য দিয়ে যেতে হবে।
নীল বার্নওয়েল

6
@ নীল: হ্যাঁ, তবে তিনি বিকাশকারীকে কোড পরিবর্তন করতে বাধ্য না করে উন্নয়নের পরিবেশে পরিবর্তন করতে পারবেন না।
অ্যাডাম রবিনসন

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

7
আমি এসপি-র স্বাক্ষরের মাধ্যমে অ্যাপ্লিকেশনগুলি থেকে রক্ষা পাওয়া প্রতিটি 1 স্কিমা পরিবর্তনের জন্য অযথা লিখিত 199 টি স্ট্রোকড পদ্ধতি দেখেছি, তবে সাইমন পি স্টিভেনস যা বলেছিলেন, এসপিদের ব্যবহারের ক্ষেত্রে শব্দার্থগত পরিবর্তনগুলির ক্ষেত্রে অ্যাপ্লিকেশনগুলির 100% পরিবর্তন ঘটে যাইহোক সময়। এসপিগুলির খুব অস্তিত্ব কেবল এসপি-র মধ্যে কিছু ব্যবসায়িক যুক্তি ফাঁস করার জন্য ভবিষ্যতের কোনও দেব বা ডিবিএকে অনুরোধ করে তা উল্লেখ করার দরকার নেই। তারপরে আরও কিছু, এবং আরও কিছু।

64

লিনক থেকে এসকিএল।

এসকিএল সার্ভার কোয়েরি প্ল্যানগুলি ক্যাশে করবে, সুতরাং স্প্রোকগুলির জন্য কোনও কার্যকারিতা লাভ নেই।

অন্যদিকে আপনার লিনাক স্টেটমেন্টগুলি যুক্তিযুক্তভাবে আপনার অ্যাপ্লিকেশনটির অংশ এবং পরীক্ষা করা হবে। স্প্রোকস সর্বদা কিছুটা পৃথক থাকে এবং বজায় রাখা এবং পরীক্ষা করা শক্ত।

আমি যদি এখনই স্ক্র্যাচ থেকে কোনও নতুন অ্যাপ্লিকেশন নিয়ে কাজ করছিলাম তবে আমি কেবল লিনক ব্যবহার করব, কোনও স্প্রোকস নেই।


8
আমি স্প্রোকদের কোনও লাভের বিষয়ে আপনার মন্তব্য সম্পর্কে একমত নই। আমি একটি প্রোড সিস্টেমে এসকিউএল সার্ভার অ্যাক্সেসের জন্য একাধিক পদ্ধতির প্রোফাইল দিয়েছি এবং প্রিপারেই + সঞ্চিত প্রোক ব্যবহার করে সেরা ফলাফল পেয়েছি। এমনকি একই যুক্তির একাধিক কল জুড়ে। যদিও আপনি ঠিক একটি ডিবি ডাব্লু / কম ব্যবহারের উপর রয়েছেন।
torial

আপনি যদি সর্বাধিক দক্ষ ডাটাবেস ক্যোয়ারী বিকাশকারী হন এবং হন, তবে আপনি যা সর্বাধিক ঘনিষ্ঠভাবে পরিচিত তা ব্যবহার করুন। পদ্ধতিগত কোডের বিপরীতে, আপনি বলতে পারবেন না "যদি এটি সঠিক উত্তর দেয়, তবে শিপিং করুন।"
dkretz

5
@ রাসেলএইচ: নেট .৩.৫ এর ক্ষেত্রে এটি সত্য ছিল, তারা এটি স্থির করেছিলেন। নেট 4 (
এল

3
@ কিয়েট কেস নয়! এসপিদের তুলনায় লিনক থেকে আরও অনেকগুলি বাস্তবায়ন পরিকল্পনা তৈরি করা হয়। ডিবাগ করার কোড সহ সুবিধা রয়েছে; কিন্তু সংস্থা মোতায়েনের চক্রের জন্য পুনরায় সংশোধন করতে সমস্যা; বিভিন্ন ক্রিয়াকলাপের প্রশ্নগুলির পরীক্ষা করার জন্য নমনীয়তা, যেখানে অর্ডার দেওয়া হয়েছে। WHERE স্টেটমেন্টের ক্রম পরিবর্তন করা একটি পৃথক ক্যোয়ারী প্রক্রিয়াজাত করতে পারে; পূর্ব-আনয়ন; লিঙ্কে এটি সহজেই করা যায় না। টুইট করার জন্য ডেটা স্তর উপলব্ধ থাকতে হবে। এসপিদের রক্ষণাবেক্ষণ এবং পরীক্ষা করা শক্ত? আপনি যদি এর অভ্যস্ত না হন; তবে এসপিরা কর্পস এবং ভিএলডিবি, উচ্চ-উপলভ্যতা ইত্যাদির জন্য উপকারী! লিনক ছোট প্রকল্পের জন্য, একক কাজের জন্য; এটার জন্য যাও.
স্ন্যাপজ্যাগ

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

40

প্রাথমিক তথ্য পুনরুদ্ধারের জন্য আমি বিনা দ্বিধায় লিনকের পক্ষে যাব।

লিন্কে যাওয়ার পর থেকে আমি নিম্নলিখিত সুবিধাগুলি পেয়েছি:

  1. আমার ডাল ডিবাগিং কখনও সহজ ছিল না।
  2. আপনার স্কিমা পরিবর্তন অমূল্য যখন সময় সুরক্ষা সঙ্কলন।
  3. স্থাপনা সহজ কারণ সমস্ত কিছু ডিএলএল-তে সংকলিত। আর কোনও ডিপ্লোয়মেন্ট স্ক্রিপ্ট পরিচালনা করা হয় না।
  4. যেহেতু লিনক আইকিউয়েরেবল ইন্টারফেস প্রয়োগ করে এমন কোনও কিছুর সন্ধানকে সমর্থন করতে পারে, আপনি এক্সএমএল, অবজেক্টস এবং অন্য কোনও ডেটাসোর্সকে নতুন সিনট্যাক্স না শিখেই একই প্রশ্নের বাক্য ব্যবহার করতে সক্ষম হবেন

1
আমার জন্য সংকলন সময় সুরক্ষা কী!
বিবিকিচিকেনরোবট

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

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

27

লিনিকিউ প্রক্রিয়া ক্যাশেটি ফুটিয়ে তুলবে

যদি কোনও অ্যাপ্লিকেশন লিনকিউ থেকে এসকিউএল ব্যবহার করে থাকে এবং ক্যোরিগুলিতে স্ট্রিংগুলি ব্যবহার করা হয় যা দৈর্ঘ্যে অত্যন্ত পরিবর্তনশীল হতে পারে তবে এসকিউএল সার্ভারের পদ্ধতি ক্যাশেটি প্রতিটি সম্ভাব্য স্ট্রিং দৈর্ঘ্যের জন্য ক্যোয়ারীর একটি সংস্করণ দিয়ে স্ফীত হয়ে যাবে। উদাহরণস্বরূপ, অ্যাডভেঞ্চার ওয়ার্কস ২০০৮ ডাটাবেসে ব্যক্তি-অ্যাড্রেসটাইপস টেবিলের বিরুদ্ধে তৈরি নিম্নলিখিত খুব সাধারণ প্রশ্নগুলি বিবেচনা করুন:

var p = 
    from n in x.AddressTypes 
    where n.Name == "Billing" 
    select n;

var p = 
    from n in x.AddressTypes 
    where n.Name == "Main Office" 
    select n;

যদি এই উভয় অনুসন্ধান চালানো হয় তবে আমরা এসকিউএল সার্ভারের পদ্ধতি ক্যাশেতে দুটি এন্ট্রি দেখতে পাব: একটি এনভিচারার (7) এর সাথে আবদ্ধ এবং অন্যটি এনভিচারার (11) দিয়ে আবদ্ধ। এখন কল্পনা করুন যে কয়েকশ বা হাজার হাজার বিভিন্ন ইনপুট স্ট্রিং রয়েছে, সমস্তই বিভিন্ন দৈর্ঘ্যের সাথে। প্রক্রিয়া ক্যাশে অকারণে সঠিক একই ক্যোয়ারির জন্য বিভিন্ন ধরণের বিভিন্ন পরিকল্পনায় পূর্ণ হয়ে যাবে।

আরও এখানে: https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=363290


10
কি মূর্খ যুক্তি - কেবল একটি পরিবর্তনশীল ব্যবহার করুন এবং আপনার সমস্যা সমাধান করা হবে।
জনঅপিনিকার

6
@ জন, আপনি যদি আক্ষরিক স্ট্রিংয়ের পরিবর্তে কোনও বৈধতা ব্যবহার করেন তবে শেষ পর্যন্ত আপনি ডাটাবেসে আক্ষরিক স্ট্রিং প্রেরণ করছেন এটি কোনও লাভ হবে না। এটি আপনার কোডে কোনও ভেরিয়েবলের মতো দেখায়, তবে এটি উত্পন্ন টি-এসকিউএল এর একটি স্ট্রিং হবে যা ডিবিতে প্রেরণ হয়ে যায়।
কেএনে

15
এসকিউএলমেনেস: আপনি যে পৃষ্ঠায় লিঙ্ক করেছেন তার অনুসারে, বিষয়টি ভিএস2010 এ সমাধান করা হয়েছে।
মার্ক বায়ার্স

8
উত্তর পোস্ট করার সময় এই সমস্যাটি বৈধ ছিল, তবে এরপরে এটি ভিএস 2010-এ সমাধান করা হয়েছে, সুতরাং এটি আর সমস্যা নয়।
Brain2000

17

আমি মনে করি প্রো লিনকিউ যুক্তিটি এমন লোকদের কাছ থেকে এসেছে যাঁদের ডাটাবেস বিকাশের ইতিহাস নেই (সাধারণভাবে)।

বিশেষত যদি ভিএস ডিবি প্রো বা টিম স্যুটের মতো পণ্য ব্যবহার করা হয়, তবে এখানে তৈরি অনেক যুক্তি প্রয়োগ হয় না, উদাহরণস্বরূপ:

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

লিনকিউ সত্য ইউনিট পরীক্ষাকে অসম্ভব করে তোলে (মনে মনে) এটি এসিডি পরীক্ষায় ব্যর্থ হয়।

লিনকিউতে ডিবাগ করা সহজ: কেন? ভিএস পরিচালিত কোড এবং এসপিদের নিয়মিত ডিবাগিং থেকে সম্পূর্ণ পদক্ষেপে অনুমতি দেয়।

স্থাপনার স্ক্রিপ্টগুলির পরিবর্তে একটি একক ডিএলএলে সংকলিত: আবারও, ভিএস উদ্ধার করতে আসে যেখানে এটি সম্পূর্ণ ডাটাবেসগুলি তৈরি করতে এবং স্থাপন করতে বা ডেটা-নিরাপদ বর্ধিত পরিবর্তন করতে পারে।

লিনকিউ দিয়ে টিএসকিউএল শিখতে হবে না: না আপনি না, তবে আপনাকে লিনকুই শিখতে হবে - সুবিধা কোথায়?

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

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

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

সম্পাদনা করুন: লাইনকিউ থেকে এসকিউএল স্টোরড প্রক্রিয়া পদ্ধতির দিকটি এমন কিছু যা এখনও আমার আরও পড়তে হবে - যা আমি খুঁজে পাই তার উপর নির্ভর করে আমার উপরের ডায়িটারি পরিবর্তন করতে পারে;)


4
লিনকিউ শেখা কোনও বড় বিষয় নয় - এটি কেবল সিনট্যাকটিক চিনি। টিএসকিউএল সম্পূর্ণ ভিন্ন ভাষা। আপেল এবং কমলা।
অ্যাডাম লাসেক

3
লিনকিউ শেখার সুবিধা হ'ল এটি কোনও একক প্রযুক্তির সাথে আবদ্ধ নয় - কোয়েরিং শব্দার্থবিজ্ঞান এক্সএমএল, অবজেক্টস ইত্যাদির জন্য ব্যবহার করা যেতে পারে এবং এটি সময়ের সাথে সাথে প্রসারিত হবে।
ডেভ আর।

5
একমত! তাই অনেক লোক (বিকাশকারী) ছোট দল এবং প্রকল্পগুলিতে "গতি থেকে বাজারে" সমাধান সন্ধান করছে। তবে উন্নয়নটি যদি একাধিক টিম, বৃহত ডাটাবেস, উচ্চ-ভলিউম, উচ্চ-উপলব্ধতা, বিতরণ সিস্টেমের সাথে কর্পোরেট স্টাইলের পরবর্তী স্তরে উন্নীত হয়, তবে এটি লিনকিউ ব্যবহার করা আলাদা গল্প হবে! আমি বিশ্বাস করি না আপনাকে খুব দীর্ঘ সময়ে আপনার মতামত সম্পাদনা করতে হবে। লিনকিউ এমন প্রকল্প / দলগুলির জন্য নয় যা বৃহত্তর এবং একাধিক ব্যক্তি, একাধিক দল (দেব এবং ডিবিএ) রয়েছে এবং তাদের কঠোরভাবে মোতায়েনের শিডিয়ুল রয়েছে।
স্ন্যাপজ্যাগ

17

লিনকিউ নতুন এবং এর জায়গা রয়েছে। সঞ্চিত প্রক্রিয়া প্রতিস্থাপনের জন্য লিনকুই আবিষ্কার করা হয়নি।

এখানে আমি কিছু "পারফরম্যান্স মিথ" এবং কনস এর উপর মনোনিবেশ করব, কেবল "লিনকিউ থেকে এসকিউএল" এর জন্য অবশ্যই অবশ্যই আমি সম্পূর্ণ ভুল হতে পারি ;-)

(1) লোকেরা বলে যে লিনকিউ স্ট্যাটমেন্টটি এসকিউএল সার্ভারে "ক্যাশে" করতে পারে, সুতরাং এটি কার্য সম্পাদন হারাবে না। আংশিক সত্য। "লিনকু থেকে এসকিউএল" আসলে রানটাইম টিএনএসকিউএল স্ট্যাটামেন্টে লিনকিউ সিনট্যাক্স অনুবাদ করে। পারফরম্যান্সের দৃষ্টিকোণ থেকে, একটি হার্ড কোডিং ADO.NET এসকিউএল স্টেটমেন্টের লিনকু ছাড়া কোনও পার্থক্য নেই।

(২) একটি উদাহরণ দেওয়া, গ্রাহক পরিষেবা UI এর একটি "অ্যাকাউন্ট ট্রান্সফার" ফাংশন রয়েছে। এই ফাংশনটি নিজেই 10 ডিবি টেবিল আপডেট করতে পারে এবং একটি শটে কিছু বার্তা ফিরে আসতে পারে। লিনকুইয়ের সাথে আপনাকে স্টেটমেন্টের একটি সেট তৈরি করতে হবে এবং সেগুলি এসকিউএল সার্ভারে একটি ব্যাচ হিসাবে প্রেরণ করতে হবে। এই অনূদিত লিনকিউ-> টিএসকিউএল ব্যাচের কার্য সম্পাদন খুব কমই সঞ্চিত প্রক্রিয়াটির সাথে মেলে। কারণ? কারণ আপনি অন্তর্নির্মিত এসকিউএল প্রোফাইলার এবং এক্সিকিউশন প্ল্যান সরঞ্জামটি ব্যবহার করে স্টোরড পদ্ধতিতে বিবৃতিটির ক্ষুদ্রতম ইউনিটটি টুইঙ্ক করতে পারেন, আপনি লিনিকউতে এটি করতে পারবেন না।

মুল বক্তব্যটি হ'ল সিঙ্গেল ডিবি টেবিল এবং ছোট সিআরইউডি ডেটার ছোট সেটগুলির কথা বলার সময়, লিনিকিউ এসপি হিসাবে তত দ্রুত। তবে আরও জটিল যুক্তির জন্য, সঞ্চিত পদ্ধতিটি আরও কার্য সম্পাদনযোগ্য ak

(3) "লিনকিউ থেকে এসকিউএল" সহজেই পারফরম্যান্স হোগগুলি পরিচয় করিয়ে দিতে newbies তৈরি করে। যে কোনও সিনিয়র টিএসকিউএল লোক আপনাকে যখন সর্সর ব্যবহার করবেন না তখন বলতে পারবেন (মূলত আপনারা টিএসকিউএলে সর্সর ব্যবহার করবেন না)। লিনকিউ এবং কোয়েরি সহ আকর্ষণীয় "ফোরচ" লুপ সহ, কোনও নবজাতকের পক্ষে এই জাতীয় কোড লেখা এত সহজ:

foreach(Customer c in query)
{
  c.Country = "Wonder Land";
}
ctx.SubmitChanges();

আপনি দেখতে পারেন এই সহজ শালীন কোডটি তাই আকর্ষণীয়। তবে হুডের নীচে। নেট রানটাইম কেবল এটি আপডেট ব্যাচে অনুবাদ করে। যদি কেবল 500 লাইন থাকে তবে এটি 500 লাইন টিএসকিউএল ব্যাচ; যদি মিলিয়ন লাইন থাকে তবে এটি হিট। অবশ্যই, অভিজ্ঞ ব্যবহারকারী এই কাজটি করার জন্য এই উপায়টি ব্যবহার করবেন না, তবে মূল কথাটি হ'ল এইভাবে পড়ে যাওয়া এত সহজ।


2
সি / সি ++ / সি # তে পয়েন্টারগুলির সাথে ব্যর্থ হওয়া সহজ এটির অর্থ কি এটি কখনই ব্যবহার করা উচিত নয়?
bbqchickenrobot

1
মধ্যম স্তরের কতজন প্রোগ্রামার পয়েন্টারগুলির সাথে কাজ করে? লিনক এই ক্ষমতাটি কোনও স্তরের কোডারে প্রকাশ করে যার অর্থ ত্রুটির ঝুঁকি নাটকীয়ভাবে বৃদ্ধি পায়।
জ্যাকস

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

12

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


10

অ্যাপ্লিকেশন-নির্দিষ্ট ডেটাবেসগুলিতে এবং ছোট ব্যবসায়গুলিতে অবশ্যই লিনিকের এর স্থান রয়েছে।

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


2
আপনি একটি ভাল পয়েন্ট আনা; এই ক্ষেত্রে লিনকিউ বিকল্প নয়।
মেটা-নাইট

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

8

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

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


7

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

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

কখনও কখনও আমি মনে করি যে ডিবিএগুলি লিনকিউ-এর বিরুদ্ধে পক্ষপাতদুষ্ট, কারণ তারা মনে করে যে এটি তাদের কাজের সুরক্ষার জন্য হুমকিস্বরূপ। তবে এটি হ'ল জন্তু, মহিলা এবং ভদ্রলোকদের প্রকৃতি।


3
হ্যাঁ, আমাদের ডিবিএরা সারাদিন অপেক্ষা করে বসে আপনার জন্য উত্পাদনের জন্য কোনও স্টকড প্রোকের অনুরোধ জানায়। তা না করে আমাদের হৃদয় ভেঙে যায়!
স্যাম

6

আমি মনে করি আপনার বাস্তবের জন্য প্রোকসের সাথে যেতে হবে।

ক) লিনকে আপনার সমস্ত যুক্তি লেখার অর্থ আপনার ডাটাবেস কম দরকারী কারণ কেবল আপনার অ্যাপ্লিকেশনই এটি গ্রাস করতে পারে।

খ) আমি নিশ্চিত নই যে অবজেক্ট মডেলিং যাইহোক রিলেশনাল মডেলিংয়ের চেয়ে ভাল।

গ) এসকিউএল-এ সঞ্চিত প্রক্রিয়াটি পরীক্ষা করা এবং বিকাশ করা কোনও ভিজ্যুয়াল স্টুডিও পরিবেশে একটি সংকলন সম্পাদনা চক্রের চেয়ে অনেক দ্রুত নরক। আপনি কেবল সম্পাদনা করুন, F5 এবং নির্বাচন করুন এবং আপনি দৌড় প্রতিযোগিতায় চলেছেন।

ডি) সমাবেশগুলির তুলনায় সঞ্চিত পদ্ধতি পরিচালনা করা এবং মোতায়েন করা আরও সহজ .. আপনি কেবল ফাইলটি সার্ভারে রেখেছেন এবং F5 টিপুন ...

ঙ) লিনাক টু এসকিএল এখনও যখন আপনি এটি আশা করেন না তখন ক্রপী কোডটি লিখেন।

সত্যিই, আমি মনে করি চূড়ান্ত বিষয়টি এমএসের পক্ষে টি-স্কুয়েল বাড়ানো হবে যাতে এটি লিঙ্কের মতোই প্রচ্ছন্নতার সাথে যুক্ত হতে পারে। t-sql টি জানা উচিত যদি আপনি অর্ডার.লাইনেটিস. পার্ট করতে চান তবে উদাহরণস্বরূপ।


5

লিনকিউ স্টোর করা পদ্ধতি ব্যবহার নিষিদ্ধ করে না। আমি লিনকিউ -এসকিউএল এবং লিনকিউ-সঞ্চিতপ্রোকের সাথে মিশ্র মোড ব্যবহার করেছি । ব্যক্তিগতভাবে, আমি আনন্দিত যে আমাকে সঞ্চিত প্রক্সগুলি লিখতে হবে না .... pwet-tu।


4

এছাড়াও, সম্ভাব্য 2.0 রোলব্যাকের বিষয়টি রয়েছে। আমার উপর বিশ্বাস রাখুন আমার সাথে এটি বেশ কয়েকবার ঘটেছে তাই আমি নিশ্চিত যে এটি অন্যদের ক্ষেত্রে ঘটেছিল।

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


3

আমি ধরে নিচ্ছি আপনার লিনাক টু এসকিএল বোঝাচ্ছেন

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

অন্যদিকে আসল ডিল-ব্রেকার আপনার ব্যবসায়ের লজিককে আপনার ডাটাবেসে রাখলে স্বাচ্ছন্দ্য বোধ করেন কি না এ প্রশ্নটি হবে, যা সঞ্চিত পদ্ধতিগুলির বিরুদ্ধে যুক্তি।


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

3
ব্যবসায়িক যুক্তি ডাটাবেসের মধ্যে যাওয়া উচিত নয়। এটি এমন একটি প্রোগ্রামিং ভাষায় হওয়া উচিত যেখানে এটি সহজেই ডিবাগ এবং পরিচালনা করা যায়। এরপরে এটি অ্যাপ্লিকেশনগুলিতে অবজেক্ট হিসাবে ভাগ করা যায়। কিছু নিয়ম ডাটাবেসে থাকতে পারে তবে ব্যবসায়িক যুক্তি নয়।
চতুর্থ স্পেস

3

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

উপসংহার হিসাবে, মোটরসাইকেল বা গাড়ির মধ্যে নির্বাচন করা আপনার রুট (ব্যবসা), দৈর্ঘ্য (সময়) এবং যাত্রী (ডেটা) এর উপর নির্ভর করে।

আশা করি এটি সাহায্য করে, আমি ভুল হতে পারি। : ডি


1
বন্ধুরা মোটর সাইকেল
অ্যালেক্স

2
লোকেরা গাড়ি চালাচ্ছিল।
লিয়াং

1
হ্যাঁ আপনি ভুল
আসাদ আলী

3

লিনকিউয়ের দিকে ঝুঁকানো এই সমস্ত উত্তরগুলি মূলত ডেভেলপমেন্টের ইজ সম্পর্কে কথা বলছে যা কোডিংয়ের নিম্নমানের কোডিং বা আলস্যতার সাথে কমবেশি যুক্ত connected আমি কেবল এই রকম

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

আবার টাইপসটিটি হ'ল সতর্কতা অবলম্বন করা উচিত যে "আমরা ভুল টাইপকাস্টিং এড়াতে সাবধান" যা আবার লিনাক ব্যবহার করে আমরা উন্নত করার চেষ্টা করছি quality এমনকি সেই ক্ষেত্রে, যদি ডাটাবেসের কোনও পরিবর্তন হয়, যেমন স্ট্রিং কলামের আকার, তবে লিনাকটি পুনরায় সংকলন করা দরকার এবং এটি ছাড়া টাইপসেফ না হয় .. আমি চেষ্টা করেছি।

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

অলস হওয়া বন্ধ করুন। আমি অনেক চেষ্টা করছি। :)


4
মেমরির সবকিছু লোড করে এটিকে ফিল্টার করব? লিনক ক্যোয়ারির অংশ হিসাবে ফিল্টারটি ডাটাবেসে প্রেরণ করতে পারে এবং পরিশোধিত ফলাফল সেটটি প্রদান করে।
লিয়াং

বেশ কয়েক জন লোক আছেন যারা বিশ্বাস করেন যে লিনকিউ সমস্ত ডেটা লোড করে এবং একটি ফোরচ লুপ ব্যবহার করে এটি প্রক্রিয়া করে। ওইটা ভুল. এটি কেবল একটি বর্গ কোয়েরিতে সংকলিত হয়ে যায় এবং বেশিরভাগ সিআরইউডি অপারেশনের জন্য প্রায় একই কর্মক্ষমতা সরবরাহ করে। তবে হ্যাঁ এটি কোনও রূপালী বুলেট নয়। এমন কেস রয়েছে যেখানে টি-এসকিউএল বা সঞ্চিত প্রকোস ব্যবহার করা আরও ভাল হতে পারে।
এটি

আমি উভয় পাল্টা যুক্তি সম্মত। তবে এটি সম্পূর্ণ সত্য নয় যে লিনক সমস্ত ফিল্টার ডিবিএমএস-এ কাজ করার জন্য পাঠায়। কিছু জিনিস রয়েছে যা স্মৃতিতে কাজ করে তার মধ্যে একটি স্বতন্ত্র।
মনীশ

2

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


2

সঞ্চিত পদ্ধতি পরীক্ষা করা সহজ করে তোলে এবং আপনি অ্যাপ্লিকেশন কোডটি স্পর্শ না করেই ক্যোয়ারীটি পরিবর্তন করতে পারেন। লিনাকের সাথেও, একটি ডেটা পাওয়ার অর্থ এটি সঠিক তথ্য নয়। এবং ডেটার নির্ভুলতা পরীক্ষা করার অর্থ অ্যাপ্লিকেশনটি চালানো তবে সঞ্চিত পদ্ধতিতে অ্যাপ্লিকেশনটিকে স্পর্শ না করে পরীক্ষা করা সহজ।


1

ফলাফল হিসাবে সংক্ষেপ করা যেতে পারে

ছোট সাইট এবং প্রোটোটাইপগুলির জন্য LinqToSql। প্রোটোটাইপিংয়ের জন্য এটি সত্যই সময় সাশ্রয় করে।

স্পস: ইউনিভার্সাল। আমি আমার প্রশ্নের টিউন করতে পারি এবং সর্বদা সত্যিকারের এক্সপ্লিউশনপ্ল্যান / প্রাক্কলিত এক্সেকিউশন প্ল্যান চেক করতে পারি।



0

লিনকুই এবং এসকিউএল উভয়েরই জায়গা রয়েছে। উভয়েরই তাদের অসুবিধা এবং সুবিধা রয়েছে।

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

লিনাক টু সত্তা দ্রুত সিআরইউডি বিকাশের জন্য দুর্দান্ত।

নিশ্চিত যে আপনি কেবল একটি বা অন্যটি ব্যবহার করে কোনও অ্যাপ তৈরি করতে পারেন। অথবা আপনি এটি মিশ্রিত করতে পারেন। এটি সমস্ত আপনার প্রয়োজনীয়তা নেমে আসে। তবে এসকিউএল সঞ্চিত প্রোসগুলি শীঘ্রই কোনও সময় সরে যাবে না।

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