rag.usp_Corpus_Resync
yordamDB-11 · değişiklik 11.10.2026 · Obje aramaya dön
İfadeler
3 ifade ·
217 çalışma ·
toplam 0,8 sn
| Sorgu (query_hash) | Çalışma | Ort. süre (ms) | Ort. CPU (ms) | Ort. okuma | Süredeki pay |
|---|---|---|---|---|---|
| 0x40E4B9F00A728CCB | 169 | 3,0 | 2,9 | 214 | %60,7 |
| 0x506DD276628AFB07 | 36 | 7,6 | 7,5 | 2.194 | %33,3 |
| 0x0390C8485348C3BD | 12 | 4,1 | 4,1 | 1.555 | %6 |
Bağımlılıklar
Doğrudan referanslar (sys.sql_expression_dependencies); dinamik SQL ve geç bağlanan adlar görünmeyebilir.aynı veritabanıbaşka veritabanılinked server
| Yön | Nesne | Tür | Kapsam |
|---|---|---|---|
| kullanıyor | perf.QueryDailyStats | tablo | aynı veritabanı |
| kullanıyor | rag.AnalysisRecommendation | tablo | aynı veritabanı |
| kullanıyor | rag.AnalysisRequest | tablo | aynı veritabanı |
| kullanıyor | rag.Document | tablo | aynı veritabanı |
| kullanıyor | rag.EmbedQueue | tablo | aynı veritabanı |
| kullanıyor | rag.PlanChangeCase | tablo | aynı veritabanı |
| kullanan | test_RagStore.test korpus senkronu bayat ve kaynagi kalmamis etkin profili alir | yordam | aynı veritabanı |
| kullanan | test_RagStore.test korpus senkronu belgesi olmayan kabul edilmis analiz ve plan vakasini da alir | yordam | aynı veritabanı |
| kullanan | test_RagStore.test korpus senkronu kullanicinin sildigi kabul edilmis analizi ve plan vakasini geri getirmez | yordam | aynı veritabanı |
| kullanan | test_RagStore.test korpus senkronu vaka belgelerini bir kez alir; taze profili, KB'yi ve kullanicinin sildigi/cikardigi belgeyi almaz | yordam | aynı veritabanı |
-- Korpus bekçisi (spec 2026-10-02-korpus-kurallari-bekci-design §4.4, her gün): yalnız zamanla değişebilen kurallara takılabilecek kaynaklar
-- kuyruğa alınır; değişmeyen belge yeniden üretilmez. Vaka belgeleri (az sayıda; 30 gün uygulanmayan onay, saha denetimi, yerini alma),
-- belgesi hiç oluşmamış kabul edilmiş analiz/plan vakası (ör. saha denetimi beklerken belge oluşmadı, sonra doğrulandı) ve bayatlamış ya da
-- istatistiği kalmamış etkin profiller. Bugün görülen profilleri günlük rollup kuyruğa alır (usp_EmbedQueue_EnqueueProfiles); bayat sayılmış
-- profil sorgusu yeniden görülünce o yolla döner. Üretici biçimi değişince yeniden üretim usp_Corpus_EnqueueOutdated ile (GeneratorVersion).
-- Kullanıcının bilgi tabanından sildiği (Deleted) ya da elle çıkardığı (Manual) belge hiçbir yolla geri gelmez.
CREATE PROCEDURE rag.usp_Corpus_Resync
@ProfileStaleDays int = 30,
@Queued int = NULL OUTPUT
AS
BEGIN
SET NOCOUNT ON;
WITH seen AS (
SELECT q.ServerID, CONCAT(q.ServerID, N'|', q.DatabaseName, N'|', CONVERT(varchar(18), q.query_hash, 1)) AS SourceRef, MAX(q.StatDateUtc) AS LastDay
FROM perf.QueryDailyStats AS q GROUP BY q.ServerID, q.DatabaseName, q.query_hash
), lastDay AS (
SELECT q.ServerID, MAX(q.StatDateUtc) AS LastDay FROM perf.QueryDailyStats AS q GROUP BY q.ServerID
), src AS (
SELECT d.SourceType, d.SourceRef, 0 AS Ord, d.DocId AS Seq
FROM rag.Document AS d WHERE d.SourceType = 'Case'
UNION
SELECT 'Case', CAST(r.RequestID AS nvarchar(20)), 0, 0
FROM rag.AnalysisRequest AS r
WHERE r.Status = 'Done'
AND EXISTS (SELECT 1 FROM rag.AnalysisRecommendation AS a WHERE a.RequestID = r.RequestID AND a.Decision IN ('Approved', 'Applied'))
UNION
SELECT 'Case', N'plan:' + CAST(c.CaseID AS nvarchar(20)), 0, 0
FROM rag.PlanChangeCase AS c WHERE c.Status IN ('Accepted', 'AutoAccepted')
UNION
SELECT d.SourceType, d.SourceRef, 1, d.DocId
FROM rag.Document AS d
LEFT JOIN seen AS s ON s.SourceRef = d.SourceRef
LEFT JOIN lastDay AS l ON l.ServerID = d.ServerID
WHERE d.SourceType = 'Profile' AND d.IsActive = 1
AND (s.LastDay IS NULL OR s.LastDay < DATEADD(day, -@ProfileStaleDays, l.LastDay))
), one AS (
SELECT SourceType, SourceRef, MIN(Ord) AS Ord, MAX(Seq) AS Seq FROM src GROUP BY SourceType, SourceRef
)
INSERT rag.EmbedQueue (SourceType, SourceRef)
SELECT o.SourceType, o.SourceRef
FROM one AS o
WHERE NOT EXISTS (SELECT 1 FROM rag.EmbedQueue AS e
WHERE e.SourceType = o.SourceType AND e.SourceRef = o.SourceRef AND e.Status IN ('Queued', 'Running'))
AND NOT EXISTS (SELECT 1 FROM rag.Document AS h
WHERE h.SourceType = o.SourceType AND h.SourceRef = o.SourceRef AND h.ExclusionReason IN ('Deleted', 'Manual'))
ORDER BY o.Ord, o.Seq, o.SourceRef; -- vakalar önce: getirimde kanıt katmanı
SET @Queued = @@ROWCOUNT;
END;
Bu nesnenin analizleri
Kayıt yok
Bu nesne için analiz yok.