SQL Reporting services: pierwsze wywołanie jest bardzo powolne

Zainstalowałem SQL Reporting server (2008 R2), z kilkoma raportami. Ale mam problemy z występami.

Pierwsze wywołanie dnia do serwera (przechodząc na przykład przez interfejs raportu), jest bardzo powolne(co najwyżej 30-45sekund).

Generowanie raportu jest wtedy "szybkie" (1-2 sekundy).

Następne połączenia do serwera są zawsze postowane do następnego dnia. Mam wrażenie, że ładuje wiele rzeczy w pamięci. Ale co może 30-45 sekund do załadowania w pamięci??? I jak załadować go tylko raz?

Serwer jest wystarczająco dobry (quad core, 8GB PAMIĘCI ram, na razie nigdy w pobliżu jego pojemności).

W czym problem? Jak mogę to rozwiązać ?

Te raporty będą uruchamiane tylko 4-5 razy w tygodniu, więc zawsze będą powolne, jeśli nie mogę tego zmienić. A ponieważ jest dostępny dla klienta, po prostu nie mogę ich zrozumieć (a raport jest wywoływany przez stronę internetową, więc ryzykuję, że timeout).

Dziękuję bardzo

Author: J4N, 2012-06-26

6 answers

Wydaje się, że to problem z SSRS. Nie ma nic złego w Twoim raporcie.

To "normalne", że SSRS wymaga więcej czasu, aby załadować po raz pierwszy dostęp do niego po długim czasie bezczynności. Problem jest spowodowany sposobem działania SSR, a SSR regularnie uruchamia domenę aplikacji po określonym czasie. Po ponownym uruchomieniu domeny aplikacji, na pierwsze żądanie SSR musi załadować wszystkie ustawienia i zajmuje to dość dużo czasu.

This blog program jest obejściem sytuacji

 23
Author: Diego,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-26 08:46:04

Oto skrypt powershell, który napisałem, aby rozwiązać problem. Jest ustawiony jako zadanie do uruchomienia co 1: 00:

Stop-Service "SQL Server Reporting Services (MSSQLSERVER)"
Start-Service "SQL Server Reporting Services (MSSQLSERVER)"
$wc = New-Object system.net.webClient
$cred = [System.Net.CredentialCache]::DefaultNetworkCredentials
$wc.Credentials = $cred
$src = $wc.DownloadString("http://localhost/Reports/Pages/Report.aspx?ItemPath=***NAME OF HOME PAGE***")
 2
Author: SChalice,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-25 20:34:53

Najlepszym rozwiązaniem, jakie mogłem wymyślić, było wydanie polecenia "curl" na stronie http raportu za pomocą polecenia wsadowego via windows w usłudze windows. To uruchamiało stronę(y) każdego ranka, zanim przyszli użytkownicy.

Nie mam już dostępu do kodu (job był jakiś czas temu), ale to pytanie pokazuje jak używać curl:

Http://blogs.plexibus.com/2009/01/15/rest-esting-with-curl/

 1
Author: Preet Sangha,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-06-26 12:14:55

Jak powiedział Diego, SSRS ma pewne problemy. Pierwsze wywołanie jest powolne, jeśli chodzi o konfigurację serwera. Polecam następujący config dodać w rsreportserver.config (located if you don ' t know in C:\Program Files\Microsoft SQL Server\MSRS10.MSSQLSERVER \ Reporting Services\ReportServer\)

Jeśli chcesz zwiększyć maksymalną pamięć używaną przez SSRS: (co oznacza 7 GB)

<WorkingSetMaximum>7000000</WorkingSetMaximum>

Jeśli chcesz poprawić pierwsze połączenie, możesz ustawić (w minutach)

<RecycleTime>4320</RecycleTime>

Właściwie SSRS ma czas resetowania (recyklingu), w którym czyści swój bufor. Domyślnie ustawiony na 720 min (12h), więc dlatego, jeśli otwierasz raport Codziennie rano, ładuje się bardzo wolno. W razie potrzeby możesz ustawić czas recyklingu na wyższy (2-3 dni). Nie polecam wyższego czasu, ponieważ bufor zapełni się i otrzymasz tylko puste strony, więc będziesz musiał ręcznie ponownie uruchomić usługi raportowania.

 1
Author: Mihai,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-07-23 21:27:53

Może być całkowicie niezwiązany z serwerem SQL. Spróbuj sprawdzić, czy nie jest to problem z listą unieważnienia znaku kodu, zobacz Fix powolne uruchamianie aplikacji z powodu walidacji znaku kodu

 0
Author: Remus Rusanu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-06-26 12:26:14

Przekonwertowałem główne zapytanie i rozwijane kontrolki na stronie, aby załadować z procedur przechowywanych, zrobiło to różnicę powiedzmy 5 sekund w procesie ładowania.Unikaj korzystania z zapytań inline.

 0
Author: Arif Imtiaz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-21 15:11:45