এসকিউএল এজেন্টদের চাকরি দেখার জন্য একটি ভাল সরঞ্জাম কী? [বন্ধ]


14

আমি এজেন্ট কাজগুলি পরিচালনা করার জন্য অন্তর্নির্মিত এমএস এসকিউএল স্টুডিও সরঞ্জামগুলি দেখতে কিছুটা হতাশার জন্য পেয়েছি find আপনি কী খুঁজে পেয়েছেন?

অফহ্যান্ড, এমন একটি সরঞ্জামে আমি তিনটি জিনিস দেখতে চাই:

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

এটি হ্যান্ডেল করার জন্য সম্ভবত একটি সামান্য অ্যাপ্লিকেশন লেখা সহজ হবে তবে কেউ অবশ্যই ইতিমধ্যে এটি সম্পন্ন করেছে এবং আরও ভাল করেছে।

এটি স্পষ্টতই একটি বিষয়গত প্রশ্ন, সুতরাং যদি কোনও প্রকারের मोड যদি অতীতে ঘুরে বেড়ায় তবে নির্দ্বিধায় এটি একটি সিডব্লিউ তৈরি করতে পারেন।

উত্তর:


13

কিছু কিছু গুগল করেছে এবং এখানে এমন কিছু সফ্টওয়্যার রয়েছে যা আপনার আগ্রহী হতে পারে:

  1. এসকিউএল চাকরির ম্যানেজার https://www.idera.com/productssolutions/freetools/sqljobmanager

  2. ক্যোয়ারী বর্তমানে SQL সার্ভার এজেন্ট চাকরি রানিং http://sqlconcept.com/2011/06/25/how-to-query-currently-running-sql-server-agent-jobs/

কারও যদি যোগ করার আরও লিঙ্ক থাকে তবে এগিয়ে যান!


পয়েন্ট 3 এর জন্য, লিঙ্ক ক্যোয়ারী এবং নোটগুলি এখানে রয়েছে -

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

2 মিনিটের মধ্যে আমি এসকিউএল সার্ভারপিডিয়ায় ব্রেন্ট ওজারের এই দুর্দান্ত পোস্টটি পেয়েছি। কেন এই পোস্ট এত মহান? এটি এত দুর্দান্ত কারণ ব্রেন্ট বুঝতে পেরেছিলেন যে আপনি যদি কেবল সিসজবস এবং সিসজোভিস্টরি টেবিলগুলি অনুসন্ধান করেন তবে আপনি সঠিক বর্তমান কাজের স্থিতি পাবেন না। অর্থাত্ সিস্টেভিস্টিরি টেবিলটিতে আপনার একটি কলাম রান_স্ট্যাটাস রয়েছে, তবে (বিওএল অনুসারে এই কলামের সম্ভাব্য মানগুলি হ'ল "কাজের ফাঁসির স্থিতি: 0 = ব্যর্থ, 1 = সফল, 2 = পুনরায় চেষ্টা করুন, 3 = বাতিল হয়েছে, 4 = প্রগতিতে ") বাস্তবে, মানটি কখনই 4 (প্রগতিতে) হবে না। আসলে, সিজবোঝিস্ট্রি টেবিলে প্রতিটি কাজের পদক্ষেপের historicalতিহাসিক ডেটা রাখা হয়, যার অর্থ পরবর্তী পদক্ষেপটি কার্যকর হওয়ার পরে পদক্ষেপের স্থিতিটি আপডেট করা হয়। অন্য কথায়, টেবিলটি রিয়েল টাইমে আপডেট হয় না, বা অন্য প্রতিটি সেকেন্ডে।

সুতরাং, ব্রেন্ট বুঝতে পেরেছিল যে সেখানে একটি অননুমোদিত স্টোরেজ পদ্ধতি রয়েছে sys.xp_sqlagent_enum_jobs, যা sp_help_job এর অংশ, যা এজেন্ট কাজের বর্তমান সম্পাদনের স্থিতি দিতে পারে।

যদিও আমি বর্তমানে চলমান চাকরির উপায় খুঁজে পেয়েছি, তবে আমি এই স্ক্রিপ্টটিতে সন্তুষ্ট নই কারণ এটি কেবল এসকিউএল 2005/2008 এ চলে।

আমার যদি এসকিউএল 2000 ইনস্ট্যান্স থাকে এবং বর্তমানে চলমান কাজগুলি সম্পর্কে খুব আগ্রহী আমি কী করব?

টিম চ্যাপম্যানের কিছুটা সাহায্যের সাহায্যে (www.SQLServerNation.com এর মাস্টার) আমি কীভাবে এটি করব তা বুঝতে পেরেছি। ধন্যবাদ, টিম!

এখানে চূড়ান্ত স্ক্রিপ্ট রয়েছে যা এসকিউএল 2000, 2005 এবং ২০০৮ এ চলবে এবং এটি আপনাকে বর্তমানে চলমান এসকিউএল সার্ভার এজেন্ট কাজ দেবে। (যেমন আপনি দেখতে পাচ্ছেন, ব্রেন্টের স্ক্রিপ্টের সাথে পার্থক্য খুব কম: "sys.xp_sqlagent_enum_jobs" এর পরিবর্তে আমি "master.dbo.xp_sqlagent_enum_jobs" ব্যবহার করছি এবং আমি "যেখানে x ব্যবহার করে কেবল চলমান কাজগুলি পেতে ফলাফলকে সীমাবদ্ধ করছি) .আরুনিং = 1 ″)।

সহজ হিসাবে এটি। উপভোগ করুন।

IF EXISTS (SELECT *
FROM    tempdb.dbo.sysobjects
WHERE   id = OBJECT_ID(N'[tempdb].[dbo].[Temp1]')
)
DROP TABLE [tempdb].[dbo].[Temp1]
GO
CREATE TABLE [tempdb].[dbo].[Temp1]
(
job_id uniqueidentifier NOT NULL,
last_run_date nvarchar (20) NOT NULL,
last_run_time nvarchar (20) NOT NULL,
next_run_date nvarchar (20) NOT NULL,
next_run_time nvarchar (20) NOT NULL,
next_run_schedule_id INT NOT NULL,
requested_to_run INT NOT NULL,
request_source INT NOT NULL,
request_source_id sysname
COLLATE database_default NULL,
running INT NOT NULL,
current_step INT NOT NULL,
current_retry_attempt INT NOT NULL,
job_state INT NOT NULL)
DECLARE @job_owner   sysname
DECLARE @is_sysadmin   INT
SET @is_sysadmin   = isnull (is_srvrolemember ('sysadmin'), 0)
SET @job_owner   = suser_sname ()
INSERT INTO [tempdb].[dbo].[Temp1]

--EXECUTE sys.xp_sqlagent_enum_jobs @is_sysadmin, @job_owner
EXECUTE master.dbo.xp_sqlagent_enum_jobs @is_sysadmin, @job_owner
UPDATE [tempdb].[dbo].[Temp1]
SET last_run_time    = right ('000000' + last_run_time, 6),
next_run_time    = right ('000000' + next_run_time, 6);
-----
SELECT j.name AS JobName,
j.enabled AS Enabled,
CASE x.running
WHEN 1
THEN
'Running'
ELSE
CASE h.run_status
WHEN 2 THEN 'Inactive'
WHEN 4 THEN 'Inactive'
ELSE 'Completed'
END
END
AS CurrentStatus,
coalesce (x.current_step, 0) AS CurrentStepNbr,
CASE
WHEN x.last_run_date > 0
THEN
convert (datetime,
substring (x.last_run_date, 1, 4)
+ '-'
+ substring (x.last_run_date, 5, 2)
+ '-'
+ substring (x.last_run_date, 7, 2)
+ ' '
+ substring (x.last_run_time, 1, 2)
+ ':'
+ substring (x.last_run_time, 3, 2)
+ ':'
+ substring (x.last_run_time, 5, 2)
+ '.000',
121
)
ELSE
NULL
END
AS LastRunTime,
CASE h.run_status
WHEN 0 THEN 'Fail'
WHEN 1 THEN 'Success'
WHEN 2 THEN 'Retry'
WHEN 3 THEN 'Cancel'
WHEN 4 THEN 'In progress'
END
AS LastRunOutcome,
CASE
WHEN h.run_duration > 0
THEN
(h.run_duration / 1000000) * (3600 * 24)
+ (h.run_duration / 10000 % 100) * 3600
+ (h.run_duration / 100 % 100) * 60
+ (h.run_duration % 100)
ELSE
NULL
END
AS LastRunDuration
FROM          [tempdb].[dbo].[Temp1] x
LEFT JOIN
msdb.dbo.sysjobs j
ON x.job_id = j.job_id
LEFT OUTER JOIN
msdb.dbo.syscategories c
ON j.category_id = c.category_id
LEFT OUTER JOIN
msdb.dbo.sysjobhistory h
ON     x.job_id = h.job_id
AND x.last_run_date = h.run_date
AND x.last_run_time = h.run_time
AND h.step_id = 0
where x.running = 1

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

3

আমি জানি এটি একটি পুরানো পোস্ট, এবং আমার ব্যক্তিগতভাবে একই সমস্যা ছিল। একাধিক উদাহরণ জুড়ে একাধিক এসকিউএল এজেন্ট কাজ পরিচালনা করা, সুতরাং আমি এখানে এসকিউএল এজেন্ট অন্তর্দৃষ্টি তৈরি করার সিদ্ধান্ত নিয়েছি > http://brentec.ca । এটি একটি বিবর্তিত পণ্য এবং নিকট ভবিষ্যতে বিটা থেকে বেরিয়ে আসবে এবং এটি ক্রমাগত আপডেট হচ্ছে এবং পরামর্শগুলি স্বাগত। আমি পরামর্শ হিসাবে এবং একটি ফুল-টাইম জিগও থাকাকালীন আমি এই নিখরচায় সময়ে কাজ করি এমন একটি প্রকল্প, তবে পরামর্শগুলি যদি সার্থক হয় তবে সেগুলি ভবিষ্যতের জন্য ফড়িং হয়ে যায়।

বর্তমানে এটি কিছু স্ক্রিপ্টিং ক্ষমতা সহ এসকিউএল এজেন্টের জন্য কেবল একটি পর্যবেক্ষণের সরঞ্জাম। বর্তমানে 0.11 সংস্করণে প্রতি বছর 2-3 আপডেট সহ বসে এবং কিছু সহায়তার জন্য যোগাযোগের তথ্য রাখি। হ্যাঁ, এখনই কোনও অনলাইন সহায়তা নেই, তবে এটি যেহেতু এটি কেবলমাত্র পঠনযোগ্য পণ্য তাই এসকিউএল-এর নিরীক্ষিত উদাহরণটির কোনও ক্ষতি করা যায় না।


2

আপনি রিপোর্ট বৈশিষ্ট্য চেষ্টা করেছেন?

এসকিউএল এজেন্ট => রিপোর্টস => স্ট্যান্ডার্ড রিপোর্টগুলিতে ডান ক্লিক করুন


আমার ছিল না, তবে তারা মারাত্মক সহায়ক নয়। দুটি রয়েছে এবং তারা কেবল মৃত্যুদন্ড কার্যকর করার সংখ্যা এবং গড় রান সময় দেখায়।
সমস্ত ট্রেডের জোন

স্পষ্টতই, আমি এসকিউএল স্টুডিও রিপোর্টগুলি বাতিল করছি না, যদি কারো কাছে দরকারী রিপোর্ট থাকে তবে তারা ভাগ করতে চান।
সমস্ত ট্রেডের জোন

2

আমি নিশ্চিত নই যে এটি আপনার সমস্ত মানদণ্ডকে সন্তুষ্ট করে তবে আপনি এটি দেখতে পারেন:

http://www.sqlsoft.co.uk/sqljobvis.php


ওয়েব সাইটটি তাদের .exe চালানোর জন্য আমাকে একটু ফাঁস করে দেয়। কিছু যোগাযোগের তথ্য একটি শুরু হবে।
সমস্ত ট্রেডের জোন

2

তালিকায় যোগ করার জন্য আরও একটি:

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

আমি যখন হিপকে জিজ্ঞাসা করেছি তখন এটি আনার জন্য মার্ককে ধন্যবাদ জানাই।

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