Obje ararag.usp_Corpus_Resync
Demo modu

rag.usp_Corpus_Resync

yordam

DB-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ışmaOrt. süre (ms) Ort. CPU (ms)Ort. okumaSü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.
rag.usp_Corpus_Resyncrag.usp_Corpus_Resync test_RagStore.test korpus sen…DB-11.test_RagStore.test korpus senkronu bayat ve kaynagi kalmamis etkin profili alir · aynı veritabanı test_RagStore.test korpus sen…DB-11.test_RagStore.test korpus senkronu belgesi olmayan kabul edilmis analiz ve plan vakasini da alir · aynı veritabanı test_RagStore.test korpus sen…DB-11.test_RagStore.test korpus senkronu kullanicinin sildigi kabul edilmis analizi ve plan vakasini geri getirmez · aynı veritabanı test_RagStore.test korpus sen…DB-11.test_RagStore.test korpus senkronu vaka belgelerini bir kez alir; taze profili, KB'yi ve kullanicinin sildigi/cikardigi belgeyi almaz · aynı veritabanı perf.QueryDailyStatsDB-11.perf.QueryDailyStats · aynı veritabanı rag.AnalysisRecommendationDB-11.rag.AnalysisRecommendation · aynı veritabanı rag.AnalysisRequestDB-11.rag.AnalysisRequest · aynı veritabanı rag.DocumentDB-11.rag.Document · aynı veritabanı rag.EmbedQueueDB-11.rag.EmbedQueue · aynı veritabanı rag.PlanChangeCaseDB-11.rag.PlanChangeCase · aynı veritabanıKullananlar Kullandıkları
aynı veritabanıbaşka veritabanılinked server
YönNesneTürKapsam
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ı
Tanım
-- 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.