পোস্টগ্রাইএসকিউএল পদ্ধতিগত ভাষাগুলি ওভারহেড (plpython / plsql / pllua…)


12

আমি রিয়েল টাইম টাস্কগুলির জন্য পদ্ধতিগত ভাষার কার্য সম্পাদনে PostgreSQL ব্যবহারকারীর সংজ্ঞায়িত ফাংশন সম্পর্কিত তথ্য সন্ধান করার চেষ্টা করছি ।

  1. তারা বিল্টিন ফাংশনগুলির সাথে কীভাবে তুলনা করে?
  2. এখানে কি কোনও পার্থক্য রয়েছে (ওভারহেডে) কীভাবে পোস্টগ্রিস কল করে / পিপ্লাইথন বনাম plpgsql বনাম প্লুয়া ফাংশন পরিচালনা করে (আমি পোস্টগ্রিসের ইন্টিগ্রেশন / প্রসঙ্গ / ডেটা ট্রান্সফার দিকে আগ্রহী, ভিএম নিজেই নয়)?
  3. প্রসঙ্গটি কি একটি বড় উপরি? আমি কি এটি রিয়েলটাইম ডেটা ম্যাপিংয়ের জন্য ব্যবহার করতে পারি (আসুন 1000 প্রশ্নগুলি / গুলি বলুন)
  4. Plpgsql এ অন্য পিজি / ভাষাতে ব্যবহারকারী সংজ্ঞায়িত ফাংশনগুলি লেখার কোনও সুবিধা আছে কি? উপর ডকুমেন্টেশন তারা সুবিধার গনা, কিন্তু আমি মনে করি তারা সব PostgreSQL পদ্ধতিগত ভাষায় প্রযোজ্য।

সম্পর্কিত অনুসন্ধান:

উত্তর:


13
  1. বর্ণিত ভাষায় ইউডিএফ সি বা বিল্ট-ইন ফাংশনগুলিতে লিখিত ইউডিএফগুলির তুলনায় সবসময় ধীরে ধীরে ধীরে ধীরে থাকে, অন্য সমস্ত জিনিস একই রকম হয়।

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

  3. "প্রসঙ্গ" কী তা অস্পষ্ট। আপনি কি এটি "রিয়েল টাইম ডেটা ম্যাপিং" এর জন্য ব্যবহার করতে পারেন ... ঠিক আছে, ফাংশনটি কী করে এবং এটি যে সার্ভারে চলছে তা এটির পক্ষে যদি খুব দ্রুত হয় তবে এটি ক্লায়েন্টদের এবং এটির প্রয়োজনীয়তার জন্য নির্ভর করে depends এক টুকরো স্ট্রিং কত দিন? মাপকাঠি.

  4. পিএল / পিজিএসকিউএল লিখতে সহজ, এবং এসকিউএল-তে দ্রুত অ্যাক্সেস সরবরাহ করে। যখন আপনাকে অনেকগুলি এসকিউএল-এর চারপাশে সামান্য যুক্তি জড়ানোর প্রয়োজন হয় তখন এটি সাধারণত ভাল। এটি গাণিতিক ক্রিয়াকলাপ এবং জটিল অ্যালগরিদমের পক্ষে খুব ধীর, সুতরাং PL / PgSQL- তে সম্পূর্ণরূপে গণনার কোড যখনই সম্ভব সি এর পক্ষে বা তাত্ক্ষণিক পদ্ধতিগত ভাষার পক্ষে এড়ানো উচিত।

সিটিতে পিএল / পিজিএসকিউএল কোডটি পুনরায় প্রয়োগ করার সময় স্পিডআপগুলি গাফিলতির থেকে 1000 বারের বেশি হতে পারে। কোডগুলি আসলে কী করছে তার উপর এটি নির্ভর করে।

(এই জাতীয় মাল্টি-প্রশ্ন স্ট্যাক এক্সচেঞ্জের পক্ষে উপযুক্ত নয় কারণ এর একটি নির্দিষ্ট উত্তর দেওয়া শক্ত)


প্রসঙ্গে আমি বলতে চাইছি এমন সমস্ত ডেটা যা প্রক্রিয়াগত পরিবেশে
রবার্ট জেরেম্বা

4

এটি বলা খুব কঠিন। এটি আপনি যা করছেন তার উপর নির্ভর করে। উদাহরণস্বরূপ: পিএল / পিজিএসকিউএল যদি আপনি এতে বড় এসকিউএল স্টেটমেন্ট পেয়ে থাকেন তবে দুর্দান্ত all আপনি যদি সমস্ত ধরণের ব্রাঞ্চিং, স্ট্রিং ম্যানেজমেন্ট এবং সমস্ত কিছু পেয়ে থাকেন তবে তা সত্যই উন্মাদ হয়ে যায়।

আপনি সত্যিই কেস থেকে কেস পরীক্ষা করেছেন।


4

প্রসঙ্গটি কি একটি বড় উপরি? আমি কি এটি রিয়েলটাইম ডেটা ম্যাপিংয়ের জন্য ব্যবহার করতে পারি (আসুন 1000 প্রশ্নগুলি / গুলি বলুন)

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

এগুলি সবগুলি PL / SQL, PL / pgSQL এবং PL / PerlU এ লিখিত। এবং আমি নিশ্চিত যে সিস্টেমটি আরও দ্রুত চলতে পারে যখন (কিছু) ফাংশন সি-তে পুনরায় লেখা হয়

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

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