ASYNC_NETWORK_IO অপেক্ষা করার মতো কিছু অপেক্ষা করার অপেক্ষা রাখে না?


16

সঞ্চালিত হতে দীর্ঘ সময় নেয় এমন সঞ্চিত প্রক্রিয়াগুলির তালিকার সন্ধানে, একজন সবচেয়ে বেশি অপেক্ষার কারণ হিসাবে দাঁড়িয়ে রয়েছে। তবে, সেই অপেক্ষার বেশিরভাগই (81%) ASYNC_NETWORK_IO এবং আমি জানি কেন: সঞ্চিত পদ্ধতিটি প্রায় 400 এমবি তথ্য স্থানান্তর করে।

ডকুমেন্টেশনে এটি উল্লেখ করেছে যে ASYNC_NETWORK_IO এর কারণ হ'ল ক্লায়েন্ট ডেটা বন্যার সাথে তাল মিলিয়ে রাখতে পারে না এবং এটি সম্ভবত সত্য। আমি নিশ্চিত নই যে ক্লায়েন্ট কীভাবে তা চালিয়ে যায় সেগুলি যেহেতু এটিগুলি ADO.NET এর মাধ্যমে সঞ্চিত প্রক্রিয়াটিকে কল করে এবং তারপরে কেবল ডেটাসেটটি প্রক্রিয়া করে।

সুতরাং এই তথ্যটি দেওয়া, আমি কি এই পদ্ধতির জন্য ASYNC_NETWORK_IO অপেক্ষা প্রকারের বিষয়ে চিন্তা করব? সার্ভারের পারফরম্যান্সে এটির আসলে কী প্রভাব আছে?

অতিরিক্ত তথ্য টুকরা:

  • আমি এসকিউএল সার্ভার 2005 এর সার্ভিস প্যাক 2 এ আছি।
  • ক্লায়েন্ট অ্যাপ্লিকেশনটি এসকিউএল সার্ভারের মতো একই বাক্সে রয়েছে (আমি জানি, আমি জানি ... তবে আমি এটি সম্পর্কে কিছুই করতে পারি না)।

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

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

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

আপনার স্টোরেজ সান বা স্থানীয়?
এরিক

@ এরিক হিগগিনস কেবল রেডেড হার্ড ড্রাইভের একটি স্থানীয় সেট।
রাগান্বিত হ্যাকার

উত্তর:


14

যেমনটি আপনি বলেছেন, এই অপেক্ষা প্রকারটি ইঙ্গিত দেয় যে অ্যাপ্লিকেশনটি এসকিউএল সার্ভারের সাথে তাল মিলছে না। এখন এর আসল অর্থটি কী, এসকিউএল সার্ভারটি যত তাড়াতাড়ি নেটওয়ার্কের মাধ্যমে ডেটা প্রেরণ করতে পারে না।

অন্তর্নিহিত দুটি কারণ হতে পারে:

  1. অ্যাপটি অকার্যকরভাবে লেখা এবং সারিগুলি দ্রুত পর্যাপ্তভাবে প্রক্রিয়া করে না।
  2. নেটওয়ার্কটি সর্বাধিক আউট হয়েছে।

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

পরবর্তী ক্ষেত্রে তবে আপনার সমস্ত সংযোগ ASYNC_NETWORK_IO এ অপেক্ষা করবে। আপনার সেই প্রভাবটি পরিষ্কারভাবে দেখতে পারা উচিত।


বুলেট পয়েন্ট ১ এর জন্য ডেটা পুনরুদ্ধারটি স্ট্যান্ডার্ড কোড ব্যবহার করে ADO.NET এর মাধ্যমে সম্পন্ন করা হয়: var dataSet = new DataSet(); var da = new SqlDataAdapter(command); da.Fill(dataSet); সুতরাং ঠিক কী ধীর হতে পারে তা আমি নিশ্চিত নই।
অ্যাগ্রিহ্যাকার

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