ম্যানেজমেন্ট স্টুডিও সিস্টেম .আউটআফ মেমরিএক্সেপশন


38

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

ব্যাচ চালানোর সময় একটি ত্রুটি ঘটেছে। ত্রুটি বার্তাটি: 'সিস্টেম.আউটআউট মেমরিএক্সেপশন' টাইপের ব্যতিক্রম ছুঁড়ে দেওয়া হয়েছিল।

সিস্টেমে 24 গিগাবাইট র‌্যাম ইনস্টল করা আছে তবে টাস্ক ম্যানেজারের দিকে তাকানো sqlservr.exe প্রক্রিয়াটি কেবল 2.9 জিবি ব্যবহার করছে।

কোথাও এমন কোনও সেটিং রয়েছে যা এর র‍্যাম ব্যবহারকে সীমাবদ্ধ করছে?

উত্তর:


39

এই ত্রুটিটি নির্দেশ করে যে ম্যানেজমেন্ট স্টুডিওগুলি মেমরির বাইরে চলেছে, এসকিউএল সার্ভার পরিষেবাটি নয়। এমনকি যদি আপনি bit৪ বিট এসকিউএল সার্ভার ইনস্টল করেন তবে এসকিউএল সার্ভার ম্যানেজমেন্ট স্টুডিও এক্সিকিউটেবল একটি 32 বিট অ্যাপ্লিকেশন।

আপনি ম্যানেজমেন্ট স্টুডিওতে ফিরে যাচ্ছেন এমন ফলাফলের আকারের কারণে সম্ভবত এটি ঘটে। আপনি কি সত্যিই বিগ_ট্যাবল থেকে SELECT * এর মতো কিছু সম্পাদন করছেন? আরও তথ্যের জন্য http://support.microsoft.com/kb/2874903 দেখুন।


19

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

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


আপনি কখনই, এসকিউএল সার্ভারের কত স্মৃতি ব্যবহার করছেন তা জানাতে কখনই টাস্ক ম্যানেজারের বিশ্বাস করতে পারেন। এর জন্য পিরিয়ডের জন্য টাস্ক ম্যানেজার ব্যবহার বন্ধ করুন। পারফরম্যান্স কাউন্টারটি ব্যবহার করুন - আপনি ডিএমভি ব্যবহার করে পারফরম্যান্স কাউন্টারটিও জিজ্ঞাসা করতে পারেন:

SELECT object_name, cntr_value 
  FROM sys.dm_os_performance_counters
  WHERE counter_name = 'Total Server Memory (KB)';

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

আপনি এই ক্যোয়ারীগুলি ব্যবহার করে মেমরি চাপ (এবং আপনি এটি সম্পর্কে কিছু করতে পারেন কিনা) তাও পরীক্ষা করতে পারেন:

SELECT object_name, cntr_value
  FROM sys.dm_os_performance_counters
  WHERE counter_name IN ('Total Server Memory (KB)', 'Target Server Memory (KB)');

-- SQL Server 2012:
SELECT physical_memory_kb FROM sys.dm_os_sys_info;

-- Prior versions:
SELECT physical_memory_in_bytes FROM sys.dm_os_sys_info;

EXEC sp_configure 'max server memory';

উপরের কমান্ডগুলি এসকিউএল এর নতুন সংস্করণগুলির জন্য। এসকিউএল ২০০৮ আর 2 সার্ভারের জন্য সেখানে কমান্ডগুলি কিছুটা আলাদা। আমি এই সার্ভারগুলির জন্য এই নীচে আরও একটি পোস্ট যুক্ত করব কারণ ফলোআপ মন্তব্যগুলি এখানে রাখার মতো যথেষ্ট ফর্ম্যাট করে না
ডেভিড ব্রিজ

15

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


9

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

এই সমস্যাটি আমাকে বেশ কয়েকদিন ধরে জর্জরিত করে এবং সত্যি বলতে মাইক্রোসফ্টের থেকে এটি বেশ দুর্বল। তাদের সত্যিই bit৪ বিট সরঞ্জাম সেট থাকা উচিত, যেহেতু আমরা আজকাল বড় ডেটা, bit৪ বিট সার্ভার এবং ডেস্কটপ এনভায়রনমেন্টের সাথে व्यवहार করছি।


1
আমার ক্ষেত্রে রেডগেট এসকিউএল প্রম্পট ইন্টেলিজেন্সে নির্মিত এসএসএমএসের সাথে লড়াই করছিল। এসএসএমএস ইন্টেলিজেন্স বন্ধ করে এসকিউএল প্রম্পটটির কাজটি আরও অনেক ভাল করে তুলেছে।
টিটিটি

1

এসকিউএল ২০০৮ আর 2 এর জন্য মেমোরি ক্যোয়ারী কমান্ডগুলি (অ্যারন বারট্র্যান্ডের পোস্ট থেকে) নীচে রয়েছে

SELECT object_name, cntr_value
FROM sys.dm_os_performance_counters
WHERE counter_name = 'Total Server Memory (KB)';

SELECT object_name, cntr_value
FROM sys.dm_os_performance_counters
WHERE counter_name IN ('Total Server Memory (KB)', 'Target Server Memory (KB)');

-- SQL Server 2012:
SELECT physical_memory_in_bytes FROM sys.dm_os_sys_info;

-- Prior versions:
SELECT physical_memory_in_bytes FROM sys.dm_os_sys_info;

কমান্ডটিও লক্ষ করুন

EXEC sp_configure 'max server memory';

আপনার যদি উন্নত বিকল্পগুলি সক্ষম না করা হয় তবে কাজ করতে পারে না। যেমন প্রথম এটি

EXEC sp_configure 'show advanced options',1
RECONFIGURE

1

দয়া করে নোট করুন যে এটির জন্য একটি এসএসএমএস মেমরি ফাঁস হওয়ার জন্য একটি মাইক্রোসফ্ট সংযুক্ত সমস্যা রয়েছে। তারা মনে করে তারা এটি v16.5 এ সমাধান করেছে

এখানে ক্লিক করে কানেক্ট.মাইক্রোসফট.কম এ সমস্যাটি দেখুন

আপনি যদি সর্বশেষতমটি ইনস্টল করেন এবং এখনও সমস্যাটি রয়েছে তবে দয়া করে পুনরায় খোলার জন্য এটিতে ভোট দিন।

এসএসএমএস v16.5 এখানে

এখানে 16.5 এ স্থির করা মেমরি ফাঁস নির্দেশ করে ইস্যুটি সংযুক্ত করুন

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