Lukasz team 9 Napisano 5 Czerwca 2019 Udostępnij Napisano 5 Czerwca 2019 w Odnalezienie największych plików graficznych w bazie danych - polecenie SQL Witam, Dobijamy z bazą do 10 GB - mamy w bazie 2257 zdjęć używanych na potrzeby list magazynowych sello oraz dla niestandardowego wzorca wydruku dla Gestor GT. Zdjęcie do kartoteki towaru umieszczamy w rozdzielczości 800x600 i wadze nie wyższej jak 100KB - miejsce trzeba oszczędzać. Wszystkie zdjęcia nie powinny w bazie przekroczyć 200-250 MB - ale jak się okazało jeden z niepracujących już pracowników do towarów umieszczał zdjęcia nie patrząc na ich wagę i rozmiar. Obecnie tablica dbo.im__Image zajmuje aż 3235896 KB (3,08 GB) Jak poleceniem SQL przez SQL Server Management Studio odnaleźć towary, w których są tak duże pliki graficzne ? Znam absolutne podstawy SQL - ale z tym nie mogę sobie poradzić :(/ Link to postu
Daniel Kozłowski 1 161 Napisano 5 Czerwca 2019 Udostępnij Napisano 5 Czerwca 2019 w Odnalezienie największych plików graficznych w bazie danych - polecenie SQL Nie ma potrzeby korzystania SSMS, można przygotować dodatkowe zestawienie SQL i osadzić je w programie... Jest to proste zestawienie, które udostępniam za darmo: select case when tw_Zablokowany = 1 then CAST(0 as bit) else CAST(1 as bit) end [Aktywny] , tw_Symbol [Symbol] , tw_Nazwa [Nazwa] , cast(1 as money) [Ilość] , cast(DATALENGTH(zd_zdjecie) as money) [Rozmiar w B] , cast(DATALENGTH(zd_zdjecie) / 1024.0 as money) [Rozmiar w kB] , cast(DATALENGTH(zd_zdjecie) / 1024.0 / 1024.0 as money) [Rozmiar w MB] from tw__Towar join tw_ZdjecieTw on tw_Id = zd_IdTowar where DATALENGTH(zd_zdjecie) > {M: Zdjęcia większe niż (kB): 0} * 1024 1 Link to postu
Tadeusz Sasnal 8 Napisano 12 Lipca 2019 Udostępnij Napisano 12 Lipca 2019 w Odnalezienie największych plików graficznych w bazie danych - polecenie SQL Gdyby jednak była potrzeba skorzystania z SSMS to przeróbka kodu Pana @Daniel Kozłowski na szybko : select tw_Symbol [Symbol] , tw_Nazwa [Nazwa] , DATALENGTH(zd_zdjecie) [Rozmiar w B] , DATALENGTH(zd_zdjecie) / 1024.0 [Rozmiar w kB] , DATALENGTH(zd_zdjecie) / 1024.0 / 1024.0 [Rozmiar w MB] from tw__Towar join tw_ZdjecieTw on tw_Id = zd_IdTowar where DATALENGTH(zd_zdjecie) > 1024 * 100 Link to postu
Polecane posty