প্রশ্নগুলি এবং অন্যান্য টি-এসকিউএল লগিং করা হচ্ছে


14

আমি জানতে চাই যে এসকিউএল সার্ভার ২০০৮ আর 2-এর SELECTবিবৃতিগুলির জন্য ডিফল্ট লগিং স্কিম রয়েছে (বা সেই বিষয়ে অন্য কোনও টি-এসকিউএল)।

যদি হ্যাঁ, আমি এটি কোথায় দেখতে পারি? যদি তা না হয় তবে আমি কীভাবে এটি সেট আপ করতে পারি?

উত্তর:


18

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

কোনও সার্ভারে SELECT ক্রিয়াকলাপ ট্র্যাক করার জন্য প্রধানত চারটি বিকল্প রয়েছে:

  1. আপনি আপনার সার্ভারের সাথে সংযোগ করতে এসকিউএল সার্ভার প্রোফাইলার ব্যবহার করতে পারেন এবং নির্দিষ্ট ক্রিয়াকলাপটি যেমন ঘটে থাকে ততক্ষণে দেখতে পারেন।

  2. আপনি সার্ভারের ট্রেস ফাইলে ক্রিয়াকলাপ লগ করতে একটি সার্ভার-সাইড ট্রেস তৈরি করতে পারেন , যা এসকিউএল সার্ভার প্রোফাইলার দ্বারা বা আরও বিশ্লেষণের জন্য এটি একটি টেবিলের মধ্যে লোড করতে fn_trace_gettable ব্যবহার করে পড়তে পারে।

  3. আপনি এক্সটেন্ডেড ইভেন্টগুলি ব্যবহার করতে পারেন যা সার্ভার-সাইড ট্রেসগুলির চেয়ে বেশি কার্যকারিতা দেয় এবং এসকিউএল সার্ভার ২০১২ থেকে শুরু হওয়া সার্ভার-সাইড ট্রেসের পরিবর্তে মাইক্রোসফ্ট প্রস্তাব দেয় s

  4. আপনি সি 2 অডিট মোড ব্যবহার করতে পারেন ।

আপনার ট্রেস সেট আপ করতে আপনি এসকিউএল সার্ভার প্রোফাইলার ব্যবহার করতে পারেন (নির্দিষ্ট ইভেন্টগুলি, ফিল্টার ইত্যাদি যা আপনি চান তা চয়ন করুন), তারপরে ফাইল মেনু ব্যবহার করে এটি স্ক্রিপ্ট আউট করে সার্ভার-সাইড ট্রেস তৈরি করতে এটি সার্ভারে চালিত করুন, বর্ণিত হিসাবে এখানে


5

নির্বাচিত বিবৃতিগুলি ট্র্যাক করার জন্য বেশ কয়েকটি এসকিউএল সার্ভার সমাধান এবং কৌশল রয়েছে

  1. বিশেষভাবে বিকশিত স্টোরেজ পদ্ধতি এবং ফাংশন - দ্রষ্টব্য: এই পদ্ধতির জন্য টি-এসকিউএল প্রোগ্রামিংয়ের উন্নত জ্ঞান এবং সঞ্চিত পদ্ধতি এবং ফাংশনগুলির অতিরিক্ত রক্ষণাবেক্ষণের প্রয়োজন (যেমন ডাটাবেস স্কিমা পরিবর্তনের ক্ষেত্রে)। আপনি এই নিবন্ধে আরও দেখতে পারেন: http://alstechtips.blogspot.com/2011/02/auditing-select-statements-in-sql.html

  2. এসকিউএল সার্ভারটি প্রযুক্তি আবিষ্কার করুন - আপনি এই নিবন্ধে একটি ধাপে ধাপে নির্দেশিকাটি পড়তে পারেন: http://solvecenter.apexsql.com/auditing-select-statements-on-sql-server/

  3. এসকিউএল সার্ভার অডিট বৈশিষ্ট্যটি ব্যবহার করে - অডিট বৈশিষ্ট্য (এসকিউএল সার্ভার ২০০৮ সালে প্রবর্তিত) সার্ভার এবং ডাটাবেস ইভেন্ট উভয়ই ট্র্যাক করতে পারে এবং বর্ধিত ইভেন্টস প্রযুক্তি ব্যবহার করছে। তবে, ডাটাবেস স্তরের অডিটিং কেবলমাত্র এসকিউএল সার্ভার ডেভেলপার এবং এন্টারপ্রাইজ সংস্করণ দ্বারা সমর্থিত।

  4. অ্যাপেক্সএসকিউএল অডিট বা আইডেরা এসকিউএল কমপ্লায়েন্স ম্যানেজারের মতো তৃতীয় পক্ষের সরঞ্জামগুলি ব্যবহার করা


3

ডিফল্টরূপে, এটি নির্বাচনী বিবৃতি লগ করে না। নির্বাচনী বিবৃতি নিরীক্ষণের জন্য আরও বিশদ জানতে আপনি আমার উত্তর এখানে উল্লেখ করতে পারেন ।

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


3

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

;WITH x AS
(
  SELECT 
    [text] = SUBSTRING(t.[text], 
      (s.statement_start_offset/2)+1, 
      COALESCE(NULLIF(s.statement_end_offset,-1),DATALENGTH(t.[text])*2)
       -(s.statement_start_offset/2)), 
    s.execution_count, s.last_execution_time,
    s.max_logical_reads, s.max_elapsed_time
  FROM sys.dm_exec_query_stats AS s
  CROSS APPLY sys.dm_exec_sql_text(s.sql_handle) AS t
)
SELECT * FROM x
WHERE LTRIM([text]) LIKE 'SELECT%';

আপনি প্যাটার্নটি প্রসারিত করতে চাইতে পারেন - উদাহরণস্বরূপ ;WITH, এটি উদ্বেগজনকভাবে শুরু হওয়া প্রশ্নগুলিকে উপেক্ষা করবে SELECT INTOএবং প্রকৃত টেবিলগুলিকে রেফারেন্স দেয় না এমন ভেরিয়েবল অ্যাসাইনমেন্টগুলি এমনকি ক্যাপচার এবং এমনকী অ্যাসাইনমেন্টও করতে পারে।

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


আমি উপরের বিবৃতিটির সাথে একমত, আমি আপনার ডাটাবেসে সমস্ত নির্বাচিত বিবৃতি পর্যবেক্ষণ সম্পর্কে অবিশ্বাস্যভাবে সতর্ক থাকব।
জেন

আমি আপনার সমাধানটি চেষ্টা করেছিলাম - এটি কি কেবলমাত্র প্রক্রিয়াগুলি, ফাংশন এবং ট্রিগার এবং কোনও অ্যাডহক এক্সিকিউটড স্কয়ার স্টেটমেন্ট সরবরাহ করে না?
ম্যাজিয়ার

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