Stenogram Sejmu · 2026-07-29

Urszula Zielińska

Kadencja 10 · posiedzenie 63 · wypowiedź 274

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) 11. punkt porządku dziennego: Pierwsze czytanie rządowego projektu ustawy o zmianie ustawy o odnawialnych źródłach energii oraz niektórych innych ustaw (druk nr 2821). Sekretarz Stanu w Ministerstwie Klimatu i Środowiska Urszula Zielińska: Dziękuję bardzo. Panie Marszałku! Wysoki Sejmie! Szanowni Państwo! Bardzo dziękujemy za te pytania - zasadne. Postaram się na nie wszystkie odpowiedzieć merytorycznie. Jeżeli nie uda mi się na któreś z tych pytań odpowiedzieć tutaj na miejscu, to odpowiemy na piśmie. Przewodniczący komisji energii pan poseł Marek Suski pytał, dlaczego ograniczamy pojemność magazynów. Chcę wyjaśnić: dzisiaj ta pojemność magazynów, jeżeli chcemy sobie do naszej mikroinstalacji np. fotowoltaicznej na dachu podpiąć magazyn, nam wykorzystuje, że tak powiem, zjada naszą pojemność mocy przyłączeniowej. My ten problem niwelujemy. Dzięki zmianom zawartym w tej ustawie można będzie przyłączyć magazyn do pojemności dwukrotnie większej niż nasza moc mikroinstalacji bez konieczności poszerzania pojemności naszego przyłączenia. (Poseł Marek Suski: To jest dobre rozwiązanie.) A zatem my to rozszerzamy, a nie ograniczamy, na razie do dwukrotności, bo to musi być realizowane w synchronizacji z PSS, operatorem, tak żeby nasze sieci mogły obsłużyć ten cały system elektroenergetyczny w fazie dosyć wrażliwej, bo transformacji. Tak więc my to poszerzamy. Pan poseł zapytał o lokalizację elektrowni wiatrowych i przywołał cytat, mówiąc o szerokim zakresie lokalizowania. Chcę to wyjaśnić. Zintegrowany plan inwestycyjny to jest miejscowy plan zagospodarowania. Jest on w pełni skonsultowany z lokalną społecznością, co więcej, daje więcej praw lokalnej społeczności samorządowej niż zwykły MPZP, ponieważ daje gminie i mieszkańcom możliwość nakładania dodatkowych obowiązków na inwestora. (Poseł Marek Suski: W ustawie jest coś innego.) Do tej pory problemem, który niestety owocował sprawami sądowymi, było to, że nie zostało jasno dookreślone w dotychczasowych ustawach to, czy farmy wiatrowe na lądzie mogą podlegać reżimowi zintegrowanego planu inwestycyjnego, który, jak mówię, jest reżimem jeszcze bardziej rygorystycznym niż miejski plan zagospodarowania, daje możliwości nakładania dodatkowych obowiązków na inwestorów. Zapadały wyroki sądowe, które potwierdzały, że lądowe inwestycje wiatrowe podlegają reżimowi zintegrowanego planu inwestycyjnego. Jedyne, co chcemy zrobić, to doprecyzować przepis, który de facto dotyczy lądowych farm wiatrowych, po to, żeby nie toczyły się sprawy w sądzie. Najnowszy wyrok NSA potwierdził, że lądowe farmy wiatrowe mogą być realizowane w rygorze ZPI, zintegrowanego planu inwestycyjnego, co zaoszczędzi mieszkańcom i inwestorom konieczności chodzenia do sądu w tej sprawie. Jest już wyrok, więc kształtuje się ścieżka orzecznicza. To w pewnym sensie pokazuje nam kierunek. Natomiast chcieliśmy to w tej ustawie, jak mówię, technicznie doprecyzować po to, żeby nie było niepotrzebnych spraw sądowych. To jest jedyny zapis, który pozostawiliśmy, który dotyczy lądowych elektrowni czy w ogóle elektrowni wiatrowych. Pan poseł Grzyb - a także kilku innych posłów - mówił o tym, że jest wsparcie operacyjne i inwestycyjne dla dużych biometanowni wprowadzane tym projektem ustawy, i pytał, co z małymi biometanowniami, gazowniami. Mają one już wsparcie i inwestycyjne, i operacyjne, które funkcjonuje. (Poseł Andrzej Grzyb: Teoretycznie, pani minister.) Jeżeli chodzi o wsparcie inwestycyjne dla biogazowni, to funkcjonuje program ˝Energia dla wsi˝, którego budżet wynosi 3 mld zł. To jest system wsparcia operacyjnego dla małych biogazowni. Taryfa FiT, czyli feed-in tariff, i cena gwarantowana dla biogazu z biogazowni o mocy do 0,5 MW już funkcjonują. Cena jest bardziej preferencyjna dla biogazowni rolniczych - to jest dokładnie to, o co pan poseł pytał - bo zależy nam na tym, żeby biogaz powstawał lokalnie w małych biogazowniach rolniczych i żeby nie trzeba było do nich wozić substratów przez całą Polskę, bo nie o to chodzi w tym procesie. Ten system już istnieje, obowiązują ceny gwarantowane dla małych biogazowni rolniczych o mocy do 0,5 MW i średnich o mocy od 0,5 MW do 1 MW. Również większe biogazownie o mocy od 1 MW w górę biorą udział w systemie aukcyjnym OZE. Co roku odbywają się aukcje OZE i duże biogazownie biorą w nich udział. Małe biometanownie miały do tej pory taryfę feed-in premium i to jest element wsparcia operacyjnego dla dużych biometanowni. To jest jedyny element, którego do tej pory brakowało. Biogazownie mamy i małe, i duże w systemie wsparcia inwestycyjnego i operacyjnego. Biometanownie miały do tej pory małe wsparcie operacyjne i wsparcie inwestycyjne w ramach dwóch programów Narodowego Funduszu Ochrony Środowiska i Gospodarki Wodnej. 30 stycznia tego roku miał miejsce drugi nabór wniosków w ramach współfinansowania projektów realizowanych w zakresie Programu Fundusze Europejskie na Infrastrukturę, Klimat i Środowisko, FEnIKS. Program rozwoju OZE z budżetem w wysokości 200 mln zł na inwestycje w obszarze biometanu i 100 mln zł na inwestycje w obszarze biogazu stanowi wsparcie inwestycyjne. Natomiast 18 maja tego roku narodowy fundusz uruchomił pierwszą transzę programu wsparcia inwestycyjnego dla wytwórców biometanu ˝Poprawa bezpieczeństwa energetycznego poprzez wykorzystanie biometanu˝ z budżetem wynoszącym 300 mln zł. Całkowity budżet programu jest większy, wynosi 800 mln zł, i jest podzielony na mniejsze transze. Tak więc, jeszcze raz podkreślam, mamy już system wsparcia inwestycyjnego i operacyjnego dla małych biogazowni i małych biometanowni, czego brakowało, jak również dużych biogazowni w systemie aukcyjnym OZE. Ostatni element, którego brakowało, wdrażamy właśnie w tym projekcie, czyli system wsparcia dużych biometanowni, bo potrzebujemy biometanu więcej niż do tej pory. Widzimy na przykładach innych krajów, że dopiero w momencie, kiedy uruchomiono systemy wsparcia dużych instalacji, biometan faktycznie zaczął płynąć do sieci gazowych.To jest to, co wykorzysta naszą infrastrukturę. (Poseł Andrzej Grzyb: Pani minister, to wsparcie musi być 10 razy większe. Te 3 mld to jest kropla w morzu...) Dlatego uruchamiamy to wsparcie. To wsparcie ma wysokość - o to też państwo posłowie pytaliście - 9,4 mld zł w okresie 10-letnim, sumarycznie. To jest ten poziom wsparcia operacyjnego dla biometanowni powyżej 1 MW. Pan poseł Wilk w imieniu klubu Konfederacji częściowo pozytywnie się wypowiadał, ale też miał obawy. Namawiam klub Konfederacji, żeby tego typu rozwiązania wzięły jako flagowe elementy swojego programu, ponieważ my mówimy tu o narodowych źródłach energii, o patriotycznych źródłach energii, produkowanych w kraju, produkowanych przez naszych przedsiębiorców, polskich rolników. Ale są obawy wolnorynkowców. Rozumiem to i odpowiadam na nie, że trzeba dopłacać. Tak, trzeba zwykle dopłacać do całkowicie nowych gałęzi przemysłu i gospodarki, żeby one mogły się rozwinąć. Niemniej jednak zapytajmy: Czy koszt rozwoju tego nowego sektora gospodarki, wsparcie rzędu 9,4 mld w okresie dekady, 10-letnim, to jest dużo czy mało? Szanowni państwo, to jest znacznie mniej niż my dzisiaj dopłacamy np. do wydobycia tych pozostałości zasobów, już bardzo uszczuplonych, węgla kamiennego i brunatnego, które mamy w kraju. Wiemy, że w 2025 r. Skarb Państwa, czyli podatnicy dopłacili do wydobycia węgla kamiennego i do sektora, do branży, będącej również w trudnej sytuacji restrukturyzacyjnej. Tak że to oczywiście również generuje koszty, ale to były koszty rzędu 9 mld zł w jednym roku. My na import paliw, ropy, gazu, węgla wydajemy, wysyłamy z Polski rocznie ok. 100 mld zł. W roku kryzysowym, wyjątkowo kryzysowym, czyli w roku 2022, natychmiast, z roku na rok ta kwota skoczyła z ok. 150 mld zł do 250 mld zł rocznie. Takiego rzędu pieniądze wysyłamy gdzieś za granicę, żeby kupić czyjeś zasoby naturalne. Stąd w Norwegii każda Norweżka i każdy Norweg mają na swoim koncie bankowym za gaz, który sprzedają na cały świat, w tym do Polski, 1,5 mln zł oszczędności. Czas więc, żebyśmy i my mieli nasze krajowe zasoby. Namawiam klub Konfederacji, żeby wziął ten punkt jako flagowy do swojego programu. Ceny referencyjne dla inwestorów w nowym sektorze, który jest obarczony naturalnie większym ryzykiem, generują to, co państwo jako klub Konfederacji, mam nadzieję i myślę, wspieracie, czyli przewidywalne i stabilne otoczenie inwestycyjne dla przedsiębiorców na początek. Bankowalny system, który umożliwi wzięcie, zaciągnięcie kredytów na budowę instalacji i rozpoczęcie nowego biznesu. Myślę, że to jest fair jako inwestycja na przyszłość, żebyśmy mieli nasze, krajowe zasoby energii. Pan poseł Sachajko mówił też o dużych i że dopuszczamy wsparcie podmiotów zagranicznych. Wyjaśniam więc: nie, nie tylko duże. Dla małych i średnich już mamy wsparcie, a teraz uruchamiamy tylko ostatni element, czyli wsparcie dla tych dużych, którzy musieli czekać kilka lat, całkiem długo, za długo. Dzięki dotychczasowym systemom wsparcia w Polsce dziś już działa, szanowni państwo, 512 biogazowni. Natomiast też pan poseł Sachajko mówił o tym, że projekt dopuszcza zatłaczanie biometanu z zagranicy. Tak, zgodnie z prawem europejskim, ale tylko do wolumenu 5%. Jest ograniczenie odnośnie do tego biometanu: tylko maksymalnie do 5% wolumenu naszego, krajowego. Więc to jest 95% local content, możemy tak o tym w skrócie powiedzieć. Pan poseł Szopiński pytał, czy projekt preferuje lokalnych rolników. Tak, właśnie jeszcze raz chcę to podkreślić, że my dopełniamy cały ekosystem wsparcia, który zaczyna się u rolnika spod Łomży. Zaczyna się od wsparcia najpierw dla najmniejszych, mikrobiogazowni. Patrzymy też dalej, jak tym rolnikom jeszcze umożliwić integrację tych biogazowni najmniejszych i średnich z gospodarstwem. Chodzi o integrację do tego łańcucha sieci, tak żeby one produkowały biogaz, następnie oczyszczały i produkowały biometan, dostarczały ten biometan do punktów zatłaczania biometanu, a potem żeby mogły sprzedawać ten biometan siecią bezpośrednią, do innych odbiorców, swoich lokalnych przedsiębiorstw. Na tym nam bardzo zależy. Czy sieci są przygotowane? W celu wzmocnienia elastyczności sieci wprowadzamy właśnie w tym projekcie możliwość zmiany sposobu rozliczania inwestycji PV z rozliczania tzw. godzinowego na tzw. dobowe. Ale coś za coś. Za to inwestycje w pikach produkcji energii ze słońca obniżą swoją podaż do sieci. Wprowadzamy więc tutaj może drobny, ale dosyć istotny mechanizm, który pomoże ustabilizować sieci, jeżeli chodzi o odbiór energii w pikach, kiedy generowana jest energia odnawialna. Jakie są przewidziane mechanizmy - pytała pani posłanka Lisowska - dla gmin realizujących spółdzielnie energetyczne? Np. 1,4 mld zł na wsparcie spółdzielni energetycznych z Krajowego Planu Odbudowy. To jest tylko jeden z programów, który właśnie realizujemy. Są uruchamiane następne. Pani posłanka Tracz pytała o spółdzielnie miejskie. Tak, od grudnia w ustawie offshore’owej wprowadziliśmy możliwość zakładania spółdzielni energetycznych. Wreszcie rozszerzyliśmy to, co do tej pory nie było możliwe. Nie było możliwości zakładania spółdzielni energetycznych w miastach, ale już mamy ten przepis. On jest aktualnie w notyfikacji w Komisji Europejskiej. Właściwie lada miesiąc spodziewamy się pełnej (Dzwonek) opinii Komisji. Jeżeli będą wymagane jakieś zmiany prawne, to będziemy to jak najszybciej realizować, żeby jak najszybciej w pełni wprowadzić spółdzielnie energetyczne do miast, bo tego do tej pory bardzo nam brakowało. Nad tym tematem się pochylamy, odpowiadając panu posłowi, panu ministrowi Zysce. Również będziemy pod tym kątem patrzeć na spółdzielnie energetyczne, jeżeli chodzi o systemy rozliczeń. Czekamy na pełną opinię Komisji Europejskiej. Dziękuję państwu bardzo. Jeżeli na coś nie odpowiedziałam... Było jeszcze kilka pytań o substraty, o to, skąd są te substraty. Mam tutaj pełną tabelę substratów rolniczych, które w zeszłym roku poszły do biogazowni rolniczych i były przetworzone na energię. Mogę tą tabelą się podzielić. Jeśli macie państwo jeszcze jakieś pytania, to jesteśmy w kuluarach. Bardzo proszę we wrześniu o pozytywną akceptację tego, jak myślę, bardzo dobrego i ważnego projektu. Dziękuję państwu bardzo. (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ź 272 Sławomir Ćwik 10. kadencja, 63. posiedzenie, 1. dzień (29-07-2026) 11. punkt porządku dziennego: Pierwsze czytanie rządowego projektu ustawy o zmianie ustawy o odnawialnych źródłach energii oraz niektórych innych ustaw (druk nr 2821). Poseł Sławomir Ćwik
  2. Wcześniej · wypowiedź 273 Krzysztof Bosak 10. kadencja, 63. posiedzenie, 1. dzień (29-07-2026) 11. punkt porządku dziennego: Pierwsze czytanie rządowego projektu ustawy o zmianie ustawy o odnawialnych źródłach energii oraz niektórych innych ustaw (druk nr 2821). Poseł Krzysztof Bos
  3. Później · wypowiedź 275 Anna Gembicka 10. kadencja, 63. posiedzenie, 1. dzień (29-07-2026) 11. punkt porządku dziennego: Pierwsze czytanie rządowego projektu ustawy o zmianie ustawy o odnawialnych źródłach energii oraz niektórych innych ustaw (druk nr 2821). Poseł Anna Gembicka
  4. Później · wypowiedź 276 Marcin Józefaciuk 10. kadencja, 63. posiedzenie, 1. dzień (29-07-2026) 11. punkt porządku dziennego: Pierwsze czytanie rządowego projektu ustawy o zmianie ustawy o odnawialnych źródłach energii oraz niektórych innych ustaw (druk nr 2821). Poseł Marcin Józefa
1. (2.86ms; exec 2.82 + fetch 0.04; 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. (1.21ms; exec 1.2 + fetch 0.01; rows 1) SELECT extraction.id, extraction.quality_state FROM extractions extraction JOIN processing_runs run ON run.id = extracti…
3. (0.87ms; exec 0.85 + fetch 0.02; rows 1) SELECT source_text FROM text_segments WHERE extraction_id = 3613 ORDER BY ordinal
4. (1.21ms; exec 1.19 + fetch 0.03; rows 4) SELECT statement.object_id, statement.statement_number, statement.speaker_name, dayStatement.ordinal FROM sejm_transcrip…
5. (1.2ms; exec 1.19 + fetch 0.01; rows 1) SELECT binding.artifact_id FROM documents document JOIN document_versions version ON version.document_id = document.obje…
6. (0.95ms; exec 0.94 + fetch 0.01; rows 1) SELECT extraction.id, extraction.quality_state FROM extractions extraction JOIN processing_runs run ON run.id = extracti…
7. (0.63ms; exec 0.62 + fetch 0.01; rows 1) SELECT source_text FROM text_segments WHERE extraction_id = 3611 ORDER BY ordinal
8. (1.11ms; exec 1.1 + fetch 0.01; rows 1) SELECT binding.artifact_id FROM documents document JOIN document_versions version ON version.document_id = document.obje…
9. (0.88ms; exec 0.87 + fetch 0.01; rows 1) SELECT extraction.id, extraction.quality_state FROM extractions extraction JOIN processing_runs run ON run.id = extracti…
10. (0.62ms; exec 0.61 + fetch 0.01; rows 1) SELECT source_text FROM text_segments WHERE extraction_id = 3612 ORDER BY ordinal
11. (1.06ms; exec 1.06 + fetch 0.01; rows 1) SELECT binding.artifact_id FROM documents document JOIN document_versions version ON version.document_id = document.obje…
12. (0.99ms; exec 0.98 + fetch 0.01; rows 1) SELECT extraction.id, extraction.quality_state FROM extractions extraction JOIN processing_runs run ON run.id = extracti…
13. (0.68ms; exec 0.65 + fetch 0.02; rows 1) SELECT source_text FROM text_segments WHERE extraction_id = 3614 ORDER BY ordinal
14. (1.06ms; exec 1.05 + fetch 0.01; rows 1) SELECT binding.artifact_id FROM documents document JOIN document_versions version ON version.document_id = document.obje…
15. (0.93ms; exec 0.92 + 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 = 3615 ORDER BY ordinal
17. (3.74ms; exec 3.72 + fetch 0.02; rows 0) SELECT individual.raw_club, individual.evidence_id, f.requested_url FROM sejm_individual_votes individual JOIN sejm_vote…
toggle
1. (2.86ms; exec 2.82 + fetch 0.04; 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 = 14165 LIMIT 1
2. (1.21ms; exec 1.2 + 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 = 14588 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. (0.87ms; exec 0.85 + fetch 0.02; rows 1) SELECT source_text FROM text_segments WHERE extraction_id = 3613 ORDER BY ordinal
4. (1.21ms; exec 1.19 + 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 272 AND 276 AND statement.object_id <> 14165 ORDER BY dayStatement.ordinal
5. (1.2ms; exec 1.19 + 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:', 272) LIMIT 1
6. (0.95ms; exec 0.94 + 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 = 14577 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. (0.63ms; exec 0.62 + fetch 0.01; rows 1) SELECT source_text FROM text_segments WHERE extraction_id = 3611 ORDER BY ordinal
8. (1.11ms; exec 1.1 + 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:', 273) LIMIT 1
9. (0.88ms; exec 0.87 + 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 = 14578 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. (0.62ms; exec 0.61 + fetch 0.01; rows 1) SELECT source_text FROM text_segments WHERE extraction_id = 3612 ORDER BY ordinal
11. (1.06ms; exec 1.06 + 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:', 275) LIMIT 1
12. (0.99ms; exec 0.98 + 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 = 14589 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. (0.68ms; exec 0.65 + fetch 0.02; rows 1) SELECT source_text FROM text_segments WHERE extraction_id = 3614 ORDER BY ordinal
14. (1.06ms; exec 1.05 + 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:', 276) LIMIT 1
15. (0.93ms; exec 0.92 + 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 = 14590 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 = 3615 ORDER BY ordinal
17. (3.74ms; exec 3.72 + fetch 0.02; 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 = 0 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:
3.74ms SELECT individual.raw_club, individual.evidence_id, f.requested_url FROM sejm_individual_votes indiv…
2.86ms SELECT s.object_id AS statement_id, s.statement_number, s.speaker_name, s.source_member_id, mp.objec…
1.21ms SELECT extraction.id, extraction.quality_state FROM extractions extraction JOIN processing_runs run …
toggle
3.74ms 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 = 0 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.86ms 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 = 14165 LIMIT 1
1.21ms SELECT extraction.id, extraction.quality_state FROM extractions extraction JOIN processing_runs run ON run.id = extraction.run_id WHERE extraction.source_artifact_id = 14588 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× (4.96ms) SELECT extraction.id, extraction.quality_state FROM extractions extraction JOIN processing…
5× (3.47ms) SELECT source_text FROM text_segments WHERE extraction_id = ? ORDER BY ordinal
4× (4.43ms) SELECT binding.artifact_id FROM documents document JOIN document_versions version ON versi…
toggle
5× (4.96ms) 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× (3.47ms) SELECT source_text FROM text_segments WHERE extraction_id = ? ORDER BY ordinal
4× (4.43ms) 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: 26.6ms | App: 26.3ms | DB: 20.7ms (17, rows: 19) [exec: 20.4ms, fetch: 0.3ms] | View: 0.5ms (1) | Mem: 2MB (peak: 2MB) | Files: 20
toggle files
(0.46ms) /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