Sp_WhoIsActtive (এসকিউএল সার্ভার ২০০৮ আর 2) এর উপর অনেকগুলি "FETCH API_CURSOR0000…"


9

আমার একটা অদ্ভুত পরিস্থিতি আছে। ব্যবহার করে sp_whoisactiveআমি এটি দেখতে পারি:

অদ্ভুত

ঠিক আছে, এই ক্যোয়ারির সাহায্যে, আমি দেখতে পাচ্ছি যা ট্রিগার করছে (এই শব্দটি ইংরেজীতে রয়েছে কি?) এটি:

SELECT c.session_id, c.properties, c.creation_time, c.is_open, t.text
FROM sys.dm_exec_cursors (SPID) c --0 for all cursors running
CROSS APPLY sys.dm_exec_sql_text (c.sql_handle) t

ফলাফল:

এটি ঠিক একটি নির্বাচন

এটি একটি সহজ select। এটি কেন চ ব্যবহার করছে etch_cursor?

এছাড়াও, আমি অনেকগুলি "ফাঁকা" স্ক্যুয়াল_টেক্সট দেখতে পাচ্ছি। এর এই "কার্সর" দিয়ে কিছু আছে?

ফাঁকা

DBCC INPUTBUFFER (spid) আমাকে এটি দেখায়:

ছাপা

এই প্রশ্নটি এখানে (আমার দ্বারা তৈরি) আছে তবে আমি জানি না এটি একই জিনিস কিনা।


EDIT1:

আত্মীয় দ্বারা সরবরাহিত ক্যোয়ারী ব্যবহার করে, আমি এটি দেখতে পেয়েছি:

এখনও কোন কোড।


EDIT2:

ক্রিয়াকলাপ মনিটর ব্যবহার করে, আমি এটি দেখতে পারি:

মোস ব্যয়বহুল ক্যোয়ারী

এটি সবচেয়ে ব্যয়বহুল ক্যোয়ারী (প্রথমটি ইচ্ছাকৃত, আমরা এটি সম্পর্কে জানি)।

এবং আবারও, আমি জানতে চাই, কেন select * from...এটি কারণ FETCH CURSOR...


EDIT3:

এটি " select * from..." অন্য সার্ভার থেকে চলছে (মাধ্যমে linked server)।

ঠিক আছে, এখন @ কি বলেছে তা বুঝতে আমার সমস্যা হচ্ছে।

এটি হল execution planক্যোয়ারির (ডাটাবেসের একই সার্ভারে চলমান):

ডাটাবেস একই সার্ভার

এটি এখন, এক্সিকিউশন প্ল্যান, লিঙ্কযুক্ত সার্ভারের মাধ্যমে অন্য সার্ভারে চলছে:

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

ঠিক আছে, খুব একটা সমস্যাও নয়। এবং এখন! **activity monitor**(একই select * from) মাধ্যমে কার্যকরকরণ পরিকল্পনা :

এখানে এসব কি হচ্ছে?

উত্তর:


3

এটি একটি সহজ নির্বাচন। কেন এটি fetch_cursor ব্যবহার করছে?

SELECTসিস্টেম-উত্পন্ন বন্টিত ক্যোয়ারী ফ্রেমওয়ার্ক দ্বারা, এবং সঙ্গে যুক্ত করা হয় UPDATEখুঁজে পেয়েছে।

রিমোট আপডেট কোয়েরি প্ল্যান অপারেটরটি sp_cursorদূরবর্তী ডেটা উত্স থেকে সারি আনতে মডেলটি ব্যবহার করে । এটি সমস্ত কার্সার এপিআই কলগুলির কারণ।

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


1

ঠিক আছে ... আমরা সমস্যাটি সমাধান করেছি। "আপডেট থেকে ... নির্বাচন করুন" "প্রক্রিয়াটির অভ্যন্তরে একটি আপডেট ছিল। আমি আপডেট মন্তব্য। আর সমস্যা নেই।


1

এটি দূরবর্তী সার্ভারগুলিতে OLEDB কলগুলির সাথে সমস্যাযুক্ত হতে পারে (লিঙ্কযুক্ত সার্ভার এবং এসএসআইএস কনফিগারেশনগুলি OLEDB ব্যবহার করে)।

এটি একটি ডিজাইনের ত্রুটি, মাইক্রোসফ্ট এসকিউএল সার্ভার বাগ যা এসকিউএল সার্ভার ২০১২ এসপি 1 অবধি প্যাচ করা হয়নি যা আমার মনে আছে যেখানে এটি দূরবর্তী পরিসংখ্যানগুলি কোয়েরিটিকে দূরবর্তীভাবে অনুকূলিতকরণের অনুমতি দেয় না to

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

মাইক্রোসফ্ট সমাধানটি লিঙ্কযুক্ত সার্ভারের শংসাপত্রকে রিমোট কলকে SA, বা ddladmin, বা ডিবিওর অ্যাক্সেস থেকে রিমোট সার্ভার / টেবিল (গুলি) জিজ্ঞাসা করা হয়েছে grant

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

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

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

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

/* 
CREATE A NEW ROLE - Deny explicit DB object access for linked 
server credentials that the DDLAdmin role gives which is needed 
for DBCC SHOW_STATISTICS across linked servers  
*/
-- Database specific
CREATE ROLE db_LinkedServer_Restriction
DENY ALTER ANY ASSEMBLY                    TO db_LinkedServer_Restriction
DENY ALTER ANY ASYMMETRIC KEY              TO db_LinkedServer_Restriction
DENY ALTER ANY CERTIFICATE                 TO db_LinkedServer_Restriction
DENY ALTER ANY CONTRACT                    TO db_LinkedServer_Restriction
DENY ALTER ANY DATABASE DDL TRIGGER        TO db_LinkedServer_Restriction
DENY ALTER ANY DATABASE EVENT NOTIFICATION TO db_LinkedServer_Restriction
DENY ALTER ANY DATASPACE                   TO db_LinkedServer_Restriction
DENY ALTER ANY FULLTEXT CATALOG            TO db_LinkedServer_Restriction
DENY ALTER ANY MESSAGE TYPE                TO db_LinkedServer_Restriction
DENY ALTER ANY REMOTE SERVICE BINDING      TO db_LinkedServer_Restriction
DENY ALTER ANY ROUTE                       TO db_LinkedServer_Restriction
DENY ALTER ANY SCHEMA                      TO db_LinkedServer_Restriction
DENY ALTER ANY SERVICE                     TO db_LinkedServer_Restriction
DENY ALTER ANY SYMMETRIC KEY               TO db_LinkedServer_Restriction
DENY CHECKPOINT                            TO db_LinkedServer_Restriction
DENY CREATE AGGREGATE                      TO db_LinkedServer_Restriction
DENY CREATE DEFAULT                        TO db_LinkedServer_Restriction
DENY CREATE FUNCTION                       TO db_LinkedServer_Restriction
DENY CREATE PROCEDURE                      TO db_LinkedServer_Restriction
DENY CREATE QUEUE                          TO db_LinkedServer_Restriction
DENY CREATE RULE                           TO db_LinkedServer_Restriction
DENY CREATE SYNONYM                        TO db_LinkedServer_Restriction
DENY CREATE TABLE                          TO db_LinkedServer_Restriction
DENY CREATE TYPE                           TO db_LinkedServer_Restriction
DENY CREATE VIEW                           TO db_LinkedServer_Restriction
DENY CREATE XML SCHEMA COLLECTION          TO db_LinkedServer_Restriction
DENY REFERENCES                            TO db_LinkedServer_Restriction

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