Autor Wątek: Jak usunąć zdjęcia z nieaktywnych towarów?  (Przeczytany 7596 razy)

0 użytkowników i 5 Gości przegląda ten wątek.

Offline Sonix

  • Nowy użytkownik
  • *
  • Wiadomości: 12
  • Reputacja +0/-0
  • Wersja programu: 1.46
Jak usunąć zdjęcia z nieaktywnych towarów?
« dnia: Grudzień 29, 2011, 10:46:52 »
Pytanie jak w temacie, czyli posiadam dosyć sporą bazę i w celu jej odchudzenia chciałbym usunać z niej zdjęcia w towarach nieaktywnych.
Nie chciałbym namieszać w bazie więc proszę o gotowe i sprawdzone zapytanie do bazy SQL które zrobi to poprawnie.
« Ostatnia zmiana: Grudzień 29, 2011, 10:49:19 wysłana przez Sonix »

Offline dkozlowski

  • Ekspert
  • *****
  • Wiadomości: 17230
  • Reputacja +800/-27
  • Wersja programu: GT/Navireo/nexo
Odp: Jak usunąć zdjęcia z nieaktywnych towarów?
« Odpowiedź #1 dnia: Grudzień 29, 2011, 15:56:57 »
Zaptanie jest stosunkowo proste:

delete
from tw_ZdjecieTw
from tw_ZdjecieTw
join tw__Towar on tw_ZdjecieTw.zd_IdTowar = tw__Towar.tw_Id
where tw__Towar.tw_Zablokowany = 1

Do kompletu zapytanie, które wyświetli nieaktywny asortyment i jego zdjęcia (można sobie wyświtlić przed delete):

select *
from tw_ZdjecieTw
join tw__Towar on tw_ZdjecieTw.zd_IdTowar = tw__Towar.tw_Id
where tw__Towar.tw_Zablokowany = 1

No i informacyjnie ile mniej więcej zajmują zdjęcia w bazie (jak zmienisz warunek na aktywność to zobaczysz ile zajmuję zdjęcia asortymentów aktywnych):

select IsNull(Sum(DATALENGTH(tw_ZdjecieTw.zd_Zdjecie)), 0) [Rozmiar w B],
IsNull(Sum(DATALENGTH(tw_ZdjecieTw.zd_Zdjecie)), 0) / 1024 as [Rozmiar w kB],
IsNull(Sum(DATALENGTH(tw_ZdjecieTw.zd_Zdjecie)), 0) / 1024 / 1024 as [Rozmiar w MB]
from tw_ZdjecieTw
join tw__Towar on tw_ZdjecieTw.zd_IdTowar = tw__Towar.tw_Id
where tw__Towar.tw_Zablokowany = 0

W jakieś rozdzielczości trzymasz zdjęcia w bazie, jak popdanie czy są skalowane przed zapisem ? Do czego są wykorzystywane ?
Daniel, Białystok.

Offline Sonix

  • Nowy użytkownik
  • *
  • Wiadomości: 12
  • Reputacja +0/-0
  • Wersja programu: 1.46
Odp: Jak usunąć zdjęcia z nieaktywnych towarów?
« Odpowiedź #2 dnia: Grudzień 29, 2011, 16:14:10 »
Witam,

dziękuję za cenne wskazówki, wieczorem potestuję na żywym organiźmie :).
Na początku zdjęcia były w 800x600 ale od pewnego czasu zdjęcia wrzuca inna osoba i robi to 'tak jak leci'   :-X
Zdarzyło się że wpakowano tam pliki >1MB  :o
Zdjęcia używane są w sklepie internetowym.

Pozdrawiam,
Przemek
« Ostatnia zmiana: Grudzień 29, 2011, 22:28:00 wysłana przez Sonix »

Offline dkozlowski

  • Ekspert
  • *****
  • Wiadomości: 17230
  • Reputacja +800/-27
  • Wersja programu: GT/Navireo/nexo
Odp: Jak usunąć zdjęcia z nieaktywnych towarów?
« Odpowiedź #3 dnia: Grudzień 29, 2011, 16:49:46 »
Jak duża już jest baza i w jakiej wersji ?

Czy są używane pola własne rozszerzone - podobno w starszych wersjach nie usuwały się poprawnie.

Miałem okazję poznać klienta, gdzie Panie z marketingu wrzucały nawet zdjęcia o objętości ponad 5 MB, w rodzielczościach 2500x2500, przy blisko 5 tys. indeksów zdjęcia miały już blisko 1 GB, a była dopiero połowa kartoteki :)
Daniel, Białystok.

Offline Sonix

  • Nowy użytkownik
  • *
  • Wiadomości: 12
  • Reputacja +0/-0
  • Wersja programu: 1.46
Odp: Jak usunąć zdjęcia z nieaktywnych towarów?
« Odpowiedź #4 dnia: Grudzień 29, 2011, 22:27:22 »
W tej chwili pracuję na wersji 1.27SP1, baza zajmuje 1800MB (po skompaktowaniu).
Korzystając z zapytań testowych okazało się że zdjęcia w towarach aktywnych to około 150MB, w nieaktywnych 80MB czyli nie jest źle, niestety dokumentów jest sporo (od 2006 roku).
Baza SQL 2008 Express R2 i pewnie dlatego przymula bo serwer jest na Xeon'ie 3.2GHz i 4GB Ram a Express i tak używa 1GB Ram'u.....

Ktoś ma jakieś mądre pomysły? (oprócz kompaktowania i odbudowy indeksów?)


Offline Biniew

  • Zaawansowany użytkownik
  • ****
  • Wiadomości: 4095
  • Reputacja +275/-17
  • Wersja programu: GT i Nexo
Odp: Jak usunąć zdjęcia z nieaktywnych towarów?
« Odpowiedź #5 dnia: Grudzień 29, 2011, 22:31:35 »
pelen sql z insertu (jest teraz w promocji)

Offline Sonix

  • Nowy użytkownik
  • *
  • Wiadomości: 12
  • Reputacja +0/-0
  • Wersja programu: 1.46
Odp: Jak usunąć zdjęcia z nieaktywnych towarów?
« Odpowiedź #6 dnia: Grudzień 29, 2011, 22:36:57 »
pelen sql z insertu (jest teraz w promocji)

Tak już tylko z ciekawości zapytam czy będzie znacząca zmiana w szybkości działania bazy (biorąc pod uwagę że musiałbym kupić licencję na serwer plus 8 lub 9 użytkowników).


Offline Biniew

  • Zaawansowany użytkownik
  • ****
  • Wiadomości: 4095
  • Reputacja +275/-17
  • Wersja programu: GT i Nexo
Odp: Jak usunąć zdjęcia z nieaktywnych towarów?
« Odpowiedź #7 dnia: Grudzień 29, 2011, 22:38:09 »
porownaj sobie sql2008 expres a workgroup a standard (wykorzystanie procka/prockow i ramu)

Offline birds22

  • Ekspert
  • *****
  • Wiadomości: 9234
  • Reputacja +1306/-21
  • Wersja programu: Najnowsza
Odp: Jak usunąć zdjęcia z nieaktywnych towarów?
« Odpowiedź #8 dnia: Grudzień 29, 2011, 22:47:37 »
Możesz zainstalować sobie wersję trial i sprawdzić jakie będą różnice w prędkości.
Sławek, Zduńska Wola

Offline Sonix

  • Nowy użytkownik
  • *
  • Wiadomości: 12
  • Reputacja +0/-0
  • Wersja programu: 1.46
Odp: Jak usunąć zdjęcia z nieaktywnych towarów?
« Odpowiedź #9 dnia: Grudzień 29, 2011, 23:04:36 »
porownaj sobie sql2008 expres a workgroup a standard (wykorzystanie procka/prockow i ramu)

Wygląda że wersja Workgroup byłaby odpowiednia.
Za radą kolegi birds22 zacząłęm ściągać 2008 R2 FULL Trial, przez 180 dni można potestować :)

Przy okazji 'testowania' jak w miarę sensownie porównać prędkości działania? Może jakieś zapytanie do bazy i zmierzyć czas działania?
Sorry za lamerskie pytania ale bazy to nie moja branża :)

Przemek

Offline birds22

  • Ekspert
  • *****
  • Wiadomości: 9234
  • Reputacja +1306/-21
  • Wersja programu: Najnowsza
Odp: Jak usunąć zdjęcia z nieaktywnych towarów?
« Odpowiedź #10 dnia: Grudzień 29, 2011, 23:10:05 »
To zależy czy Ty jesteś użytkownikiem czy nie.

Mój wypróbowany sposób to instalacja bez uprzedzenia. Jak użytkownicy zauważą różnicę to znaczy, że się opłaca :)

Kiedyś powiedziałem wcześniej to mówili, że nie ma różnicy. Jak wróciłem do Expresa (nic nie mówiąc) to zadzwonili, że coś się chyba popsuło bo nie można pracować :)
Sławek, Zduńska Wola

Offline dkozlowski

  • Ekspert
  • *****
  • Wiadomości: 17230
  • Reputacja +800/-27
  • Wersja programu: GT/Navireo/nexo
Odp: Jak usunąć zdjęcia z nieaktywnych towarów?
« Odpowiedź #11 dnia: Grudzień 29, 2011, 23:25:27 »
pelen sql z insertu (jest teraz w promocji)

Zanim wydałbym tyle złotówek, to najpierw bym sprawdził czy to coś da. W sumie nigdy nie miałem potrzeby instalować triala, gdyż miałem dostęp do pełnych wersji, ale chyba jest taka możliwość (http://msdn.microsoft.com/en-us/evalcenter/ff459612). Jeśli nie to można poszukać kogoś kto zrobi taką "prezentację" SQL'a.

1,8 GB baza to nie jest duża baza, chociaż różnicę może robić tylu użytkowników pracujących równolegle. Ja wcześniej poszukałbym wąskiego gardła - czy to na pewno jest tylko RAM, czy może też system dyskowy (widziałem u klientów serwery z Xeonamia, pamięciami ECC, ale tylko z jednym dyskiem), czy może na przykład przepustowość sieci. Ciekawe też jak postarał się Insert przy optymalizacji bazy danych - może da mu się pomóc przy operacjach które powodują "przycinanie". Widziałem rozwiązania, który były uruchamiane na pełnym SQL'u, 2 x Quad (8 rdzeni fizycznych), 16 GB RAM, do tego w ram dysku i system działał trochę szybciej niż na starym P4 3 GHz, 1 dyskiem i 8 GB RAM'u - problemem tkwił w samym programie/sposobie wykorzystywania bazy danych.

Na początek można włączyć liczniki użycia procesora i kolejki dysku w systemie  i spróbować coś z tego wywnioskować. Potem poszukać najbardziej obciążających zapytań i sprawdzić czy da się je jakoś przyspieszyć.

Nie podałeś dokładnej konfiguracji sewera - Xenon Xenonowi nie jest równy, nic nie wspomniałeś o (niedocenianych mocno) dyskach, które dodatkowo w zastosowaniach serwerowych mają wyłączna cache - podwyższa to bezpieczeństwo, ale drastycznie obniża wydajność. Technologia ciągle idzie do przodu, nowsze nowsze procesory, dyski twarde mają dużo większą wydajność i zmiana sprzętu na coś nowszego, nie koniecznie drogiego (jakieś i3 + raid 10 na 6 dyskach SATA, trochę ramu) mogłaby zdecydowanie przyspieszyć pracę.

Tak z ciekawości przy najbliższej okazji poszukam co zaleca Insert do przykładowych konfiguracji :)
Daniel, Białystok.

Offline Kakacz

  • Nowy użytkownik
  • *
  • Wiadomości: 7
  • Reputacja +0/-0
  • Wersja programu: 1.50 hf2
Odp: Jak usunąć zdjęcia z nieaktywnych towarów?
« Odpowiedź #12 dnia: Styczeń 16, 2018, 12:38:42 »
Przy próbie dodania do subiekta skryptu usuwania zdjęć nieaktywnych mam błąd:
"Polecenie musi rozpoczynać się słowem kluczowym SELECT"

Jakieś sugestie jak to zrobić?


Offline Aldo

  • Ekspert
  • *****
  • Wiadomości: 10690
  • Reputacja +433/-13
  • Wersja programu: najnowsza
Odp: Jak usunąć zdjęcia z nieaktywnych towarów?
« Odpowiedź #13 dnia: Styczeń 16, 2018, 12:49:02 »
Przy próbie dodania do subiekta skryptu usuwania zdjęć nieaktywnych mam błąd:
"Polecenie musi rozpoczynać się słowem kluczowym SELECT"

Jakieś sugestie jak to zrobić?
Dodać linię na początku i wpisać select 1
To co mialeś wyzej podane było w składni do zastosowania bezpośrenio w sql.

Forum Użytkownikow Subiekt GT

Odp: Jak usunąć zdjęcia z nieaktywnych towarów?
« Odpowiedź #13 dnia: Styczeń 16, 2018, 12:49:02 »