Stenogram Sejmu · 2026-07-29

Tomasz Siemoniak

Kadencja 10 · posiedzenie 63 · wypowiedź 75

Profil posła

Brak głosu imiennego z tego dnia, który potwierdzałby klub mówcy.

Pełna wypowiedź

10. kadencja, 63. posiedzenie, 1. dzień (29-07-2026) 4. punkt porządku dziennego: Sprawozdanie Komisji Administracji i Spraw Wewnętrznych oraz Komisji Sprawiedliwości i Praw Człowieka o rządowym projekcie ustawy o zmianie niektórych ustaw w celu wzmocnienia nadzoru sądowego nad kontrolą operacyjną (druki nr 2411 i 2820). Minister - Członek Rady Ministrów, Koordynator Służb Specjalnych Tomasz Siemoniak: Pani Marszałek! Wysoki Sejmie! Bardzo dziękuję za tę dyskusję, za pracę w komisji na kolejnych posiedzeniach, za docenienie wagi tego projektu, ponieważ rzeczywiście w sposób zdecydowany zmienia on sytuację, jeśli chodzi o pozycję obywatela wobec kontroli operacyjnej, i oddaje w ręce sądu znacznie większą władzę i kontrolę nad tym procesem. Najpierw jednak chciałbym się odnieść do głosów posłów opozycji, którzy próbują dezawuować wielkie nadużycia, do których doszło przy okazji używania systemu Pegasus przez służby za rządów PiS. Siedem osób ma poważne zarzuty, pracują nad tym zespół śledczy nr 2 prokuratury i komisja śledcza pod przewodnictwem pani poseł Magdaleny Sroki. Powątpiewanie, lekceważenie, dezawuowanie są tutaj absolutnie nie na miejscu, bo mówimy o poważnych rzeczach. Mówimy o tym, że za rządów PiS służby dokonywały takich czynności jak te podejmowane w odniesieniu do Krzysztofa Brejzy, jego rodziny. Nie dość, że inwigilowano go bezpodstawnie, to jeszcze dane pozyskane w trakcie tej inwigilacji preparowano i przekazywano usłużnym mediom. Myślę, że lepiej po prostu w przypadku tych spraw milczeć, bo skala nadużyć rzeczywiście była tu bardzo poważna. Mam wielką nadzieję, że posłowie opozycji poprą ten projekt, ponieważ on jest w interesie każdego obywatela, też w interesie opozycji, bo tak się zdarza w demokratycznym państwie, że czasem się rządzi, a czasem się nie rządzi. I wtedy takie poczucie, że w ręku niezawisłego sądu jest znacznie większa kontrola niż ta w tym momencie, jest, jak myślę, bardzo ważne. Apeluję zatem mocno o to, żeby nie podchodzić do tego w taki sposób, że to jest projekt rządowy, więc należy go od razu odrzucić, tylko dostrzec zalety, odpowiedzialność i wagę tego projektu. On w sposób zasadniczy zmienia rolę sądów. Tutaj odnoszę się do wątpliwości, czy sądy są gotowe: Jesteśmy po wielu konsultacjach z ministrem sprawiedliwości w tej sprawie. Ta dyskusja oczywiście zawierała elementy, które wynikają z doświadczeń ostatnich lat. Była mowa o sędziach, którzy - sami o tym przecież opowiadali - funkcjonują w ciężkich warunkach i muszą szybko rozpatrywać wnioski. Rozszerzenie władzy sądu - tu odnoszę się do pytania jednej z pani posłanek - oznacza też możliwość żądania wszelkich materiałów przy wniosku, przerwania kontroli, domagania się efektów tej kontroli. To jest zupełnie inna sytuacja niż ta, którą mamy dzisiaj, gdzie sąd tak naprawdę tylko decyduje o zarządzeniu tej kontroli, a potem nie ma już na to żadnego wpływu. Było pytanie, dlaczego tak późno... Zwracam uwagę pytającemu - poseł Sachajko chyba już wyszedł - że od grudnia 2024 r. obowiązuje rozporządzenie prezesa Rady Ministrów, którego elementy przenosimy na poziom ustawy, które wymaga od sędziego pisemnego uzasadnienia i decyzji pozytywnej, i decyzji negatywnej, jak również wymaga - i to jest nowy wzór wniosku - żeby bardzo szczegółowo zapisać, jakiego okresu kontrola będzie dotyczyła, jakie narzędzia będą wykorzystane. Chodzi o to, żeby nie było takiej sytuacji jak we wspomnianym przypadku posła Krzysztofa Brejzy, gdzie wyciągnięto z jego urządzenia wszystkie dane, także sięgające wstecz, nie tylko dotyczące kontrolowanego okresu, wymyślonej czynności, okresu, kiedy rzekomo miało dochodzić do przestępstw. Tak więc już od grudnia 2024 r. sędziowie mają takie narzędzie. Minęło 1,5 roku, mamy nowe doświadczenia, więc rozwiązania ustawowe stanowią dalszy, odpowiedzialny krok. Chodzi o wpisanie tych rozwiązań do ustawy, tak żeby znalazły się one w akcie najwyższego rzędu, w akcie uchwalonym przez Wysoki Sejm. W kilku wystąpieniach państwa posłów pojawiał się wątek informowania osób, które podlegały kontroli operacyjnej, jeśli ta kontrola operacyjna nie przyniosła rezultatu w postaci zarzutów, aktu oskarżenia, ewentualnego postępowania sądowego. Jesteśmy po szerokiej dyskusji w tej sprawie i uważamy, że względy bezpieczeństwa państwa... Służby poddają kontroli operacyjnej, oczywiście na wniosek prokuratury do sądu, osoby podejrzewane o dokonywanie aktów dywersji, o szpiegostwo, o rozmaite działania związane z wojną hybrydową wobec Polski i byłoby kompletną nieodpowiedzialnością, działaniem na szkodę naszego interesu, gdyby takie osoby, często obywateli innych państw, członków organizacji terrorystycznych, informować potem, że były poddawane kontroli operacyjnej. Specyfika służb zajmujących się bezpieczeństwem państwa jest taka, że ich działanie nie zawsze ma finał procesowy. Pozyskanie pewnych informacji, zlikwidowanie niektórych zagrożeń w takich przypadkach jest absolutnym priorytetem. Został poruszony wątek dotyczący różnych danych liczbowych. Oczywiście dane przekażemy na piśmie, niemniej jednak przypominam i zwracam uwagę państwa posłów na to, że obowiązkiem prokuratora generalnego, wypełnianym co roku, jest dostarczanie danych Wysokiej Izbie. Stosowne sprawozdanie trafia do Sejmu i można się zapoznać ze wszystkimi liczbami dotyczącymi poszczególnych służb. Pojawił się wątek dotyczący zmiany z wniosku ministra spraw wewnętrznych i administracji, odnoszącej się do Biura Nadzoru Wewnętrznego. Pytał o to pan poseł Jarosław Zieliński. Otóż Biuro Nadzoru Wewnętrznego ani za rządów PiS, ani po zmianach nie skorzystało z uprawnienia do kontroli operacyjnej, a więc uważamy, że to biuro może realizować swoje zadania bez takiego uprawnienia. Nie ma potrzeby zwiększania liczby służb i instytucji, które dysponują takim uprawnieniem. W rozmaitych sytuacjach nie brakuje służb do tego, żeby z takiego uprawnienia skorzystać, jeżeli jest podejrzenie dotyczące jakiegoś nadużycia czy nieprawidłowości, i wykorzystać do takiego działania inną służbę. Jeśli chodzi o pytanie pani posłanki Małgorzaty Pępek dotyczące odpowiedzialności za niedopełnienie obowiązków i za niedotrzymanie terminów, uznaliśmy, że ogólne przepisy dotyczące odpowiedzialności są absolutnie właściwe i wystarczające do tego, żeby ewentualnych niedopełniających swoich obowiązków w stosowny sposób karać. W wielu wystąpieniach państwa posłów w debacie, w której kluby parlamentarne, koła, posłowie niezależni prezentowali swoje stanowiska, pojawiał się wątek dotyczący tego, że to jest pierwszy krok i że potrzebne są kroki następne. Oczywiście tak, rząd jest otwarty na dalsze prace. Mamy świadomość wyroku Europejskiego Trybunału Praw Człowieka, chociaż nie mam żadnych wątpliwości co do tego, że to przedłożenie rządowe w sposób bardzo jasny i zdecydowany wychodzi naprzeciw temu wyrokowi. Mamy świadomość protokołu Najwyższej Izby Kontroli, w którym w sposób zdecydowanie negatywny odniesiono się do praktyki rządów przed 2023 r., jeśli chodzi o nadzór nad służbami specjalnymi i wskazanie tego, że ten obszar wymaga uregulowania. Najwyższa Izba Kontroli nie wskazywała w tym zakresie konkretnych rozwiązań. Odbyła się dyskusja na posiedzeniu Komisji do Spraw Służb Specjalnych. Natomiast proponujemy rozwiązanie, uznając, że będący od lat elementem postulatów nowy organ, który miałby zajmować się tego rodzaju zgodami, jest gorszym rozwiązaniem niż wyposażenie sądów w tego rodzaju uprawnienie. Stąd w przedłożeniu rządowym dość konsekwentnie idziemy taką drogą, nie zamykając się na dyskusję o tym, jak w jeszcze lepszy sposób można byłoby zajmować się tymi sprawami w przyszłości. Sprawy są, co wszyscy podkreślali, delikatne, wrażliwe, wymagają bardzo odpowiedzialnego podejścia, dojrzałości służb i prokuratury, i sądów, tak żeby w niezakłócony sposób można było z jednej strony zapewniać prawo do prywatności, uczciwego procesu, ale z drugiej strony uwzględniać interesy bezpieczeństwa narodowego. Jeśli chodzi o poprawkę przedstawioną przez panią poseł Zawiszę, dotyczącą dodatkowej instytucji, wydaje nam się to zbędne. Po prostu niech zajmuje się tymi kwestiami dobrze wyposażony sąd. Wszelki udział - jak zostało to nazwane - rzecznika prywatności będzie wywoływał, jak sądzę, dodatkowe komplikacje i koszty, ponieważ tych spraw są tysiące. Trudno mi sobie wyobrazić, żeby można było w taki sposób obciążać rzecznika praw obywatelskich, który ma, oczywiście, przywilej wkraczania w różne sprawy. Ludzie mają możliwość skarżenia się do rzecznika praw obywatelskich poza procedurą sądową, więc jeśli chodzi o stanowisko rządu wobec tej poprawki, będzie ono negatywne, jako osłabiającej władzę sądu w tym przypadku. Jeśli chodzi o poruszane kwestie dotyczące jakości działania służb, chcę powiedzieć, że budżety poszczególnych służb w porównaniu do roku 2023 wzrosły o kilkadziesiąt procent, więc służby są znacznie mocniejsze niż kilka lat temu. Przywróciliśmy delegatury Agencji Bezpieczeństwa Wewnętrznego. Dość nieodpowiedzialną decyzją premier Beaty Szydło zostało zlikwidowanych w 2017 r. 10 delegatur ABW. Skutki kadrowe, organizacyjne odczuwamy do dziś. Na szczęście w 2024 r. premier Donald Tusk podpisał zarządzenie dotyczące przywrócenia delegatur i od 1 lipca 2024 r. one działają. Uważamy, że w nieustanny sposób powinny być one wzmacniane, także kadrowo. Zagrożenia związane z dywersją nie dotyczą tylko dużych miast, lecz pojawiają się wszędzie, w związku z tym kierunek wzmacniania służb specjalnych, z pewnością także dzięki decyzjom budżetowym Wysokiej Izby, na pewno będzie kierunkiem absolutnie priorytetowym. Dziękując jeszcze raz za przeprowadzoną dyskusję, postawione pytania, ponawiam swój apel o to, żeby odnieść się do meritum projektu ustawy, meritum, które jest absolutnie korzystne dla wszystkich obywateli niezależnie od ich pozycji zawodowej, poglądów politycznych, i żeby w atmosferze zgody ten projekt przez Wysoki Sejm i Wysoki Senat przeprowadzić. Bardzo dziękuję. (Oklaski) Przebieg posiedzenia

Otwórz zachowany oryginał · Źródło urzędowe

Dowód treści wypowiedzi

Dowód kolejności na liście dnia

Kontekst w stenogramie

  1. Wcześniej · wypowiedź 73 Jarosław Zieliński 10. kadencja, 63. posiedzenie, 1. dzień (29-07-2026) 4. punkt porządku dziennego: Sprawozdanie Komisji Administracji i Spraw Wewnętrznych oraz Komisji Sprawiedliwości i Praw Człowieka o rządowym projekcie ustawy o zmianie niektórych ustaw w
  2. Wcześniej · wypowiedź 74 Mateusz Bochenek 10. kadencja, 63. posiedzenie, 1. dzień (29-07-2026) 4. punkt porządku dziennego: Sprawozdanie Komisji Administracji i Spraw Wewnętrznych oraz Komisji Sprawiedliwości i Praw Człowieka o rządowym projekcie ustawy o zmianie niektórych ustaw w
  3. Później · wypowiedź 76 Marcin Józefaciuk 10. kadencja, 63. posiedzenie, 1. dzień (29-07-2026) 4. punkt porządku dziennego: Sprawozdanie Komisji Administracji i Spraw Wewnętrznych oraz Komisji Sprawiedliwości i Praw Człowieka o rządowym projekcie ustawy o zmianie niektórych ustaw w
  4. Później · wypowiedź 77 Marcin Józefaciuk 10. kadencja, 63. posiedzenie, 1. dzień (29-07-2026) 4. punkt porządku dziennego: Sprawozdanie Komisji Administracji i Spraw Wewnętrznych oraz Komisji Sprawiedliwości i Praw Człowieka o rządowym projekcie ustawy o zmianie niektórych ustaw w
1. (4.35ms; exec 4.28 + fetch 0.07; rows 1) SELECT s.object_id AS statement_id, s.statement_number, s.speaker_name, s.source_member_id, mp.object_id AS member_id, d…
2. (2.02ms; exec 1.99 + fetch 0.02; rows 1) SELECT extraction.id, extraction.quality_state FROM extractions extraction JOIN processing_runs run ON run.id = extracti…
3. (1.01ms; exec 0.99 + fetch 0.02; rows 1) SELECT source_text FROM text_segments WHERE extraction_id = 3414 ORDER BY ordinal
4. (1.03ms; exec 1 + fetch 0.03; rows 4) SELECT statement.object_id, statement.statement_number, statement.speaker_name, dayStatement.ordinal FROM sejm_transcrip…
5. (1.7ms; exec 1.68 + fetch 0.02; rows 1) SELECT binding.artifact_id FROM documents document JOIN document_versions version ON version.document_id = document.obje…
6. (2.14ms; exec 2.11 + fetch 0.03; rows 1) SELECT extraction.id, extraction.quality_state FROM extractions extraction JOIN processing_runs run ON run.id = extracti…
7. (1.51ms; exec 1.49 + fetch 0.02; rows 1) SELECT source_text FROM text_segments WHERE extraction_id = 3412 ORDER BY ordinal
8. (1.03ms; exec 1.01 + fetch 0.02; rows 1) SELECT binding.artifact_id FROM documents document JOIN document_versions version ON version.document_id = document.obje…
9. (1.75ms; exec 1.71 + fetch 0.03; rows 1) SELECT extraction.id, extraction.quality_state FROM extractions extraction JOIN processing_runs run ON run.id = extracti…
10. (1.2ms; exec 1.18 + fetch 0.02; rows 1) SELECT source_text FROM text_segments WHERE extraction_id = 3413 ORDER BY ordinal
11. (1.55ms; exec 1.53 + fetch 0.02; rows 1) SELECT binding.artifact_id FROM documents document JOIN document_versions version ON version.document_id = document.obje…
12. (2.02ms; exec 2 + fetch 0.02; rows 1) SELECT extraction.id, extraction.quality_state FROM extractions extraction JOIN processing_runs run ON run.id = extracti…
13. (1.2ms; exec 1.17 + fetch 0.02; rows 1) SELECT source_text FROM text_segments WHERE extraction_id = 3415 ORDER BY ordinal
14. (1.4ms; exec 1.39 + fetch 0.01; rows 1) SELECT binding.artifact_id FROM documents document JOIN document_versions version ON version.document_id = document.obje…
15. (1.07ms; exec 1.06 + fetch 0.01; rows 1) SELECT extraction.id, extraction.quality_state FROM extractions extraction JOIN processing_runs run ON run.id = extracti…
16. (0.67ms; exec 0.66 + fetch 0.01; rows 1) SELECT source_text FROM text_segments WHERE extraction_id = 3416 ORDER BY ordinal
17. (3.08ms; exec 3.07 + fetch 0.01; rows 0) SELECT individual.raw_club, individual.evidence_id, f.requested_url FROM sejm_individual_votes individual JOIN sejm_vote…
toggle
1. (4.35ms; exec 4.28 + fetch 0.07; rows 1) SELECT s.object_id AS statement_id, s.statement_number, s.speaker_name, s.source_member_id, mp.object_id AS member_id, day.object_id AS day_id, day.term, day.proceeding_number, day.source_date, day.current_revision_id AS day_revision_id, dayStatement.ordinal, dayEvidence.id AS list_evidence_id, dayEvidence.selector_type AS list_selector_type, dayEvidence.selector AS list_selector, dayFetch.id AS list_fetch_id, dayFetch.requested_url AS list_source_url, dayArtifact.sha256 AS list_sha256, binding.artifact_id, binding.evidence_id AS transcript_evidence_id, transcriptEvidence.selector_type AS transcript_selector_type, transcriptEvidence.selector AS transcript_selector, transcriptFetch.id AS transcript_fetch_id, transcriptFetch.requested_url AS transcript_source_url, artifact.sha256 AS transcript_sha256, artifact.detected_mime, artifact.byte_size FROM sejm_statements s JOIN sejm_transcript_days day ON day.object_id = s.transcript_day_id LEFT JOIN sejm_mp_identities mp ON mp.term = day.term AND mp.mp_number = s.source_member_id LEFT JOIN sejm_transcript_day_statements dayStatement ON dayStatement.day_id = day.object_id AND dayStatement.day_revision_id = day.current_revision_id AND dayStatement.statement_id = s.object_id LEFT JOIN evidence dayEvidence ON dayEvidence.id = dayStatement.evidence_id LEFT JOIN fetches dayFetch ON dayFetch.id = dayEvidence.fetch_id LEFT JOIN artifacts dayArtifact ON dayArtifact.id = dayEvidence.artifact_id LEFT JOIN documents document ON document.owner_object_id = day.object_id AND document.document_kind = 'statement_transcript' AND document.source_document_key = CONCAT('sejm:statement:', s.statement_number) LEFT JOIN document_versions version ON version.document_id = document.object_id AND version.sequence_no = (SELECT MAX(latest.sequence_no) FROM document_versions latest WHERE latest.document_id = document.object_id) LEFT JOIN document_version_artifacts binding ON binding.version_id = version.object_id AND binding.role = 'html' AND binding.current_selector_sha IS NOT NULL LEFT JOIN evidence transcriptEvidence ON transcriptEvidence.id = binding.evidence_id LEFT JOIN fetches transcriptFetch ON transcriptFetch.id = transcriptEvidence.fetch_id LEFT JOIN artifacts artifact ON artifact.id = binding.artifact_id WHERE s.object_id = 13966 LIMIT 1
2. (2.02ms; exec 1.99 + fetch 0.02; rows 1) SELECT extraction.id, extraction.quality_state FROM extractions extraction JOIN processing_runs run ON run.id = extraction.run_id WHERE extraction.source_artifact_id = 14006 AND run.state = 'completed' ORDER BY CASE extraction.quality_state WHEN 'success' THEN 0 WHEN 'unreadable' THEN 1 ELSE 2 END, run.finished_at DESC, extraction.id DESC LIMIT 1
3. (1.01ms; exec 0.99 + fetch 0.02; rows 1) SELECT source_text FROM text_segments WHERE extraction_id = 3414 ORDER BY ordinal
4. (1.03ms; exec 1 + fetch 0.03; rows 4) SELECT statement.object_id, statement.statement_number, statement.speaker_name, dayStatement.ordinal FROM sejm_transcript_day_statements dayStatement JOIN sejm_statements statement ON statement.object_id = dayStatement.statement_id WHERE dayStatement.day_id = 13890 AND dayStatement.day_revision_id = 13480 AND dayStatement.ordinal BETWEEN 73 AND 77 AND statement.object_id <> 13966 ORDER BY dayStatement.ordinal
5. (1.7ms; exec 1.68 + fetch 0.02; rows 1) SELECT binding.artifact_id FROM documents document JOIN document_versions version ON version.document_id = document.object_id AND version.sequence_no = (SELECT MAX(latest.sequence_no) FROM document_versions latest WHERE latest.document_id = document.object_id) JOIN document_version_artifacts binding ON binding.version_id = version.object_id AND binding.role = 'html' AND binding.current_selector_sha IS NOT NULL WHERE document.owner_object_id = 13890 AND document.document_kind = 'statement_transcript' AND document.source_document_key = CONCAT('sejm:statement:', 73) LIMIT 1
6. (2.14ms; exec 2.11 + fetch 0.03; rows 1) SELECT extraction.id, extraction.quality_state FROM extractions extraction JOIN processing_runs run ON run.id = extraction.run_id WHERE extraction.source_artifact_id = 13997 AND run.state = 'completed' ORDER BY CASE extraction.quality_state WHEN 'success' THEN 0 WHEN 'unreadable' THEN 1 ELSE 2 END, run.finished_at DESC, extraction.id DESC LIMIT 1
7. (1.51ms; exec 1.49 + fetch 0.02; rows 1) SELECT source_text FROM text_segments WHERE extraction_id = 3412 ORDER BY ordinal
8. (1.03ms; exec 1.01 + fetch 0.02; rows 1) SELECT binding.artifact_id FROM documents document JOIN document_versions version ON version.document_id = document.object_id AND version.sequence_no = (SELECT MAX(latest.sequence_no) FROM document_versions latest WHERE latest.document_id = document.object_id) JOIN document_version_artifacts binding ON binding.version_id = version.object_id AND binding.role = 'html' AND binding.current_selector_sha IS NOT NULL WHERE document.owner_object_id = 13890 AND document.document_kind = 'statement_transcript' AND document.source_document_key = CONCAT('sejm:statement:', 74) LIMIT 1
9. (1.75ms; exec 1.71 + fetch 0.03; rows 1) SELECT extraction.id, extraction.quality_state FROM extractions extraction JOIN processing_runs run ON run.id = extraction.run_id WHERE extraction.source_artifact_id = 14005 AND run.state = 'completed' ORDER BY CASE extraction.quality_state WHEN 'success' THEN 0 WHEN 'unreadable' THEN 1 ELSE 2 END, run.finished_at DESC, extraction.id DESC LIMIT 1
10. (1.2ms; exec 1.18 + fetch 0.02; rows 1) SELECT source_text FROM text_segments WHERE extraction_id = 3413 ORDER BY ordinal
11. (1.55ms; exec 1.53 + fetch 0.02; rows 1) SELECT binding.artifact_id FROM documents document JOIN document_versions version ON version.document_id = document.object_id AND version.sequence_no = (SELECT MAX(latest.sequence_no) FROM document_versions latest WHERE latest.document_id = document.object_id) JOIN document_version_artifacts binding ON binding.version_id = version.object_id AND binding.role = 'html' AND binding.current_selector_sha IS NOT NULL WHERE document.owner_object_id = 13890 AND document.document_kind = 'statement_transcript' AND document.source_document_key = CONCAT('sejm:statement:', 76) LIMIT 1
12. (2.02ms; exec 2 + fetch 0.02; rows 1) SELECT extraction.id, extraction.quality_state FROM extractions extraction JOIN processing_runs run ON run.id = extraction.run_id WHERE extraction.source_artifact_id = 14007 AND run.state = 'completed' ORDER BY CASE extraction.quality_state WHEN 'success' THEN 0 WHEN 'unreadable' THEN 1 ELSE 2 END, run.finished_at DESC, extraction.id DESC LIMIT 1
13. (1.2ms; exec 1.17 + fetch 0.02; rows 1) SELECT source_text FROM text_segments WHERE extraction_id = 3415 ORDER BY ordinal
14. (1.4ms; exec 1.39 + fetch 0.01; rows 1) SELECT binding.artifact_id FROM documents document JOIN document_versions version ON version.document_id = document.object_id AND version.sequence_no = (SELECT MAX(latest.sequence_no) FROM document_versions latest WHERE latest.document_id = document.object_id) JOIN document_version_artifacts binding ON binding.version_id = version.object_id AND binding.role = 'html' AND binding.current_selector_sha IS NOT NULL WHERE document.owner_object_id = 13890 AND document.document_kind = 'statement_transcript' AND document.source_document_key = CONCAT('sejm:statement:', 77) LIMIT 1
15. (1.07ms; exec 1.06 + fetch 0.01; rows 1) SELECT extraction.id, extraction.quality_state FROM extractions extraction JOIN processing_runs run ON run.id = extraction.run_id WHERE extraction.source_artifact_id = 14008 AND run.state = 'completed' ORDER BY CASE extraction.quality_state WHEN 'success' THEN 0 WHEN 'unreadable' THEN 1 ELSE 2 END, run.finished_at DESC, extraction.id DESC LIMIT 1
16. (0.67ms; exec 0.66 + fetch 0.01; rows 1) SELECT source_text FROM text_segments WHERE extraction_id = 3416 ORDER BY ordinal
17. (3.08ms; exec 3.07 + fetch 0.01; rows 0) SELECT individual.raw_club, individual.evidence_id, f.requested_url FROM sejm_individual_votes individual JOIN sejm_votes vote ON vote.object_id = individual.vote_id AND vote.current_revision_id = individual.vote_revision_id JOIN object_revisions revision ON revision.id = vote.current_revision_id JOIN evidence e ON e.id = individual.evidence_id JOIN fetches f ON f.id = e.fetch_id WHERE vote.term = 10 AND vote.sitting_number = 63 AND individual.mp_number = 337 AND LEFT(JSON_VALUE(revision.snapshot, '$.date'), 10) = '2026-07-29' AND individual.raw_club IS NOT NULL AND individual.raw_club <> '' ORDER BY vote.voting_number DESC
Top slow:
4.35ms SELECT s.object_id AS statement_id, s.statement_number, s.speaker_name, s.source_member_id, mp.objec…
3.08ms SELECT individual.raw_club, individual.evidence_id, f.requested_url FROM sejm_individual_votes indiv…
2.14ms SELECT extraction.id, extraction.quality_state FROM extractions extraction JOIN processing_runs run …
toggle
4.35ms SELECT s.object_id AS statement_id, s.statement_number, s.speaker_name, s.source_member_id, mp.object_id AS member_id, day.object_id AS day_id, day.term, day.proceeding_number, day.source_date, day.current_revision_id AS day_revision_id, dayStatement.ordinal, dayEvidence.id AS list_evidence_id, dayEvidence.selector_type AS list_selector_type, dayEvidence.selector AS list_selector, dayFetch.id AS list_fetch_id, dayFetch.requested_url AS list_source_url, dayArtifact.sha256 AS list_sha256, binding.artifact_id, binding.evidence_id AS transcript_evidence_id, transcriptEvidence.selector_type AS transcript_selector_type, transcriptEvidence.selector AS transcript_selector, transcriptFetch.id AS transcript_fetch_id, transcriptFetch.requested_url AS transcript_source_url, artifact.sha256 AS transcript_sha256, artifact.detected_mime, artifact.byte_size FROM sejm_statements s JOIN sejm_transcript_days day ON day.object_id = s.transcript_day_id LEFT JOIN sejm_mp_identities mp ON mp.term = day.term AND mp.mp_number = s.source_member_id LEFT JOIN sejm_transcript_day_statements dayStatement ON dayStatement.day_id = day.object_id AND dayStatement.day_revision_id = day.current_revision_id AND dayStatement.statement_id = s.object_id LEFT JOIN evidence dayEvidence ON dayEvidence.id = dayStatement.evidence_id LEFT JOIN fetches dayFetch ON dayFetch.id = dayEvidence.fetch_id LEFT JOIN artifacts dayArtifact ON dayArtifact.id = dayEvidence.artifact_id LEFT JOIN documents document ON document.owner_object_id = day.object_id AND document.document_kind = 'statement_transcript' AND document.source_document_key = CONCAT('sejm:statement:', s.statement_number) LEFT JOIN document_versions version ON version.document_id = document.object_id AND version.sequence_no = (SELECT MAX(latest.sequence_no) FROM document_versions latest WHERE latest.document_id = document.object_id) LEFT JOIN document_version_artifacts binding ON binding.version_id = version.object_id AND binding.role = 'html' AND binding.current_selector_sha IS NOT NULL LEFT JOIN evidence transcriptEvidence ON transcriptEvidence.id = binding.evidence_id LEFT JOIN fetches transcriptFetch ON transcriptFetch.id = transcriptEvidence.fetch_id LEFT JOIN artifacts artifact ON artifact.id = binding.artifact_id WHERE s.object_id = 13966 LIMIT 1
3.08ms SELECT individual.raw_club, individual.evidence_id, f.requested_url FROM sejm_individual_votes individual JOIN sejm_votes vote ON vote.object_id = individual.vote_id AND vote.current_revision_id = individual.vote_revision_id JOIN object_revisions revision ON revision.id = vote.current_revision_id JOIN evidence e ON e.id = individual.evidence_id JOIN fetches f ON f.id = e.fetch_id WHERE vote.term = 10 AND vote.sitting_number = 63 AND individual.mp_number = 337 AND LEFT(JSON_VALUE(revision.snapshot, '$.date'), 10) = '2026-07-29' AND individual.raw_club IS NOT NULL AND individual.raw_club <> '' ORDER BY vote.voting_number DESC
2.14ms SELECT extraction.id, extraction.quality_state FROM extractions extraction JOIN processing_runs run ON run.id = extraction.run_id WHERE extraction.source_artifact_id = 13997 AND run.state = 'completed' ORDER BY CASE extraction.quality_state WHEN 'success' THEN 0 WHEN 'unreadable' THEN 1 ELSE 2 END, run.finished_at DESC, extraction.id DESC LIMIT 1
N+1 candidates:
5× (9ms) SELECT extraction.id, extraction.quality_state FROM extractions extraction JOIN processing…
5× (5.59ms) SELECT source_text FROM text_segments WHERE extraction_id = ? ORDER BY ordinal
4× (5.68ms) SELECT binding.artifact_id FROM documents document JOIN document_versions version ON versi…
toggle
5× (9ms) SELECT extraction.id, extraction.quality_state FROM extractions extraction JOIN processing_runs run ON run.id = extraction.run_id WHERE extraction.source_artifact_id = ? AND run.state = ? ORDER BY CASE extraction.quality_state WHEN ? THEN ? WHEN ? THEN ? ELSE ? END, run.finished_at DESC, extraction.id DESC LIMIT ?
5× (5.59ms) SELECT source_text FROM text_segments WHERE extraction_id = ? ORDER BY ordinal
4× (5.68ms) SELECT binding.artifact_id FROM documents document JOIN document_versions version ON version.document_id = document.object_id AND version.sequence_no = (SELECT MAX(latest.sequence_no) FROM document_versions latest WHERE latest.document_id = document.object_id) JOIN document_version_artifacts binding ON binding.version_id = version.object_id AND binding.role = ? AND binding.current_selector_sha IS NOT NULL WHERE document.owner_object_id = ? AND document.document_kind = ? AND document.source_document_key = CONCAT(?, ?) LIMIT ?
PHP: 36.1ms | App: 35.9ms | DB: 28.7ms (17, rows: 19) [exec: 28.3ms, fetch: 0.4ms] | View: 0.5ms (1) | Mem: 2MB (peak: 2MB) | Files: 20
toggle files
(0.45ms) /app/templates/speeches/show.php
/app/public/index.php
/app/vendor/autoload.php
/app/vendor/composer/autoload_real.php
/app/vendor/composer/platform_check.php
/app/vendor/composer/ClassLoader.php
/app/vendor/composer/autoload_static.php
/app/vendor/symfony/deprecation-contracts/function.php
/app/vendor/symfony/polyfill-php83/bootstrap.php
/app/lib/PFrame.php
/app/config/credentials/local.php
/app/src/Http/PublicResponseCache.php
/app/src/Http/AuthRoutes.php
/app/src/Http/ReviewDecisionRoutes.php
/app/src/Http/TopicDecisionRoutes.php
/app/src/Http/WatchRoutes.php
/app/src/Http/SpeechController.php
/app/src/Overview/SpeechReadModel.php
/app/src/Text/TextSearch.php
/app/templates/layout.php