ব্যবহৃত মেমরিটি এসকিউএল বুল্ক সন্নিবেশ / বিসিপি রফতানির পরে মুক্ত হয় না


10

আমি নিম্নলিখিত হিসাবে একটি খুব বেসিক এসকিউএল টেবিল তৈরি করেছি

CREATE TABLE [dbo].[TickData](
[Date] [varchar](12) NULL,
[Time] [varchar](12) NOT NULL,
[Symbol] [varchar](12) NOT NULL,
[Side] [varchar](2) NOT NULL,
[Depth] [varchar](2) NOT NULL,
[Quote] [varchar](12) NOT NULL,
[Size] [varchar](18) NOT NULL
    ) ON [PRIMARY]

আমি তখন একটি 3 গিগ বাল্ক সন্নিবেশ করিয়েছি

    BULK
    INSERT TickData
    FROM 
    'C:\SUMO.csv'
    GO

তারপরে এসকিউএল সার্ভারের জন্য র্যামের ব্যবহার স্কাইরোকিংয়ে গেছে,, 30 গিগাবাইট র্যাম খেয়েছে:

এখানে চিত্র বর্ণনা লিখুন

এখানে চিত্র বর্ণনা লিখুন

আমি এটি অস্বাভাবিক আচরণ বলে মনে করতে পছন্দ করি এবং এটি এড়াতে সেই পদক্ষেপ নেওয়া যেতে পারে।

সম্পাদনা:
ঠিক আছে, এটি ডিফল্ট আচরণ বলে মনে হচ্ছে। যথেষ্ট ফর্সা।
তবে, বাল্ক সন্নিবেশ শেষ হওয়ার পরেও কেন স্মৃতি মুক্ত হয় না ?

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


6
এসকিউএল সার্ভার কেন মেমরিটি মুক্ত করবে? যদি এই অপারেশনটি একবার করার জন্য মেমরির প্রয়োজন হয় তবে এটি আবার প্রয়োজন হবে। যদি এসকিউএল সার্ভার মেমরিটি ছেড়ে দেয় তবে আপনি এটি কীসের জন্য ব্যবহার করবেন? স্মৃতি মুক্ত হওয়া দরকার কেন? আপনি যদি অন্য কোনও কিছুর জন্য স্মৃতি ব্যবহার করেন, তবে এই বাল্ক সন্নিবেশটি আবার চলবে, কি হবে?
অ্যারন বারট্রান্ড

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

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

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

3
এছাড়াও, একজন নন মডারেটর হিসাবে আমি ভাবছি যে আপনি কেন আপনার সার্ভারে নন-এসকিউএল জিনিস চালাচ্ছেন? বাক্সটি এসকিউএল সার্ভারের জন্য কেবল সংরক্ষণ করা উচিত, এটি ডিবিএ 101 এর মতো। ইঞ্জিনটি কোনও ভাগ করা সংস্থান পরিবেশের জন্য ডিজাইন করা হয়নি।
জেএনকে

উত্তর:


12

এসকিউএল সার্ভারের পক্ষে এটি বাফার পুলের যতটুকু মেমরি বরাদ্দ করা যায় তা স্বাভাবিক আচরণ। ডেটাবেস প্রচুর পরিমাণে বাফার দিয়ে সেরা কাজ করে। আপনি যদি আচরণটি পরিবর্তন করতে চান তবে আপনি 'সর্বোচ্চ সার্ভার মেমরি' সেটিংস সেট করতে পারেন । এ সম্পর্কে কিছু ভাল পটভূমি পড়া এখানে।


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

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

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

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

1
@ অ্যারোনবার্ট্র্যান্ড ঠিক আছে আমি ভুল হতে পারি কিন্তু আমার নতুন শেষ সম্পাদনায় যেমনটি বলেছি, এটি আমি দেখেছি তা নয়: অন্য অ্যাপ্লিকেশনটির প্রয়োজন মতো স্মৃতি মুক্ত হয় নি, মেমরি ক্রাশের ফলে ঘটেছিল (সুতরাং আমার অসন্তুষ্টি ...) যাইহোক, আসুন বিষয়টি বন্ধ করুন, আমি অনুমান করি যে এর চেয়ে বেশি তর্ক করার দরকার নেই।
মেহেদী লামরানী

7

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

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

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

মজার বিষয়, আপনি যদি "এসকিউএল সার্ভার কেন করেন না" এর জন্য কোনও Google অনুসন্ধান টাইপ করেন তবে সর্বাধিক সাধারণ স্বয়ংক্রিয় সমাপ্তি হ'ল "রিলিজ মেমরি।"



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

আমাকে কেন এটি করতে হবে তা
বোঝানোর

4

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

/server/251832/sql-server-bulk-insert-physical-memory-issue

মেমরি বরাদ্দ সম্পাদনা

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


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

জানা ভাল. আমার 24 টি কোর রয়েছে তাই আপাতত এই ঠিক আছে। কিন্তু বাল্ক সন্নিবেশ শেষ হওয়ার পরে কেন স্মৃতি মুক্ত হয় না?

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

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