Hallo,
wir benutzen JTL-WaWi 1.1.0.12 und SQL Server 2008 R2 Standard und haben ein großes Problem mit den Angebotsvorlagen, wenn
wir diese über Markplätze->eBay->Angebotsvorlagen aufrufen.
Wir haben über 100.000, genauer gesagt über 300.000, es werden aber sowieso nur 10.000 angezeigt, was aber locker 5 Minuten dauern kann.
Es liegt an den Aufruf von WaWi selbst und hier unser Vorschlag, um die Laufzeit auf ca. 10-20 Sekunden zu verringern
(s. --UNSER VORSCHLAG-- und auskommentierte Stellen)
wir benutzen JTL-WaWi 1.1.0.12 und SQL Server 2008 R2 Standard und haben ein großes Problem mit den Angebotsvorlagen, wenn
wir diese über Markplätze->eBay->Angebotsvorlagen aufrufen.
Wir haben über 100.000, genauer gesagt über 300.000, es werden aber sowieso nur 10.000 angezeigt, was aber locker 5 Minuten dauern kann.
Es liegt an den Aufruf von WaWi selbst und hier unser Vorschlag, um die Laufzeit auf ca. 10-20 Sekunden zu verringern
(s. --UNSER VORSCHLAG-- und auskommentierte Stellen)
Code:
SELECT TOP 10000 ebay_item.TemplateName, ebay_item.Title AS Title, tArtikel.cArtNr AS cArtNr,
CASE WHEN dbo.ebay_item.nVariationenAktiv = 0
THEN dbo.ebay_item.Quantity
ELSE (
SELECT SUM(dbo.ebay_item2kombi.fAnzahl)
FROM dbo.ebay_item2kombi
WHERE dbo.ebay_item2kombi.kItem = dbo.ebay_item.kItem
) END AS ebay_item_Menge, vLagerBestandEx.fVerfuegbar - tArtikel.nPuffer AS verfuegbarMinusPuffer, ebay_item.StartPrice AS StartPrice, CASE
WHEN ISNULL(dbo.ebay_item.nPremium, 0) > 0 AND ISNULL(dbo.ebay_item.GalleryType, 'Gallery') = 'Plus' THEN 'Premium, Galerie Plus'
WHEN ISNULL(dbo.ebay_item.nPremium, 0) > 0 THEN 'Premium'
WHEN ISNULL(dbo.ebay_item.GalleryType, 'Gallery') = 'Plus' THEN 'Galerie Plus'
ELSE NULL END AS Zusatzoptionen, ebay_de_waehrung.Currency AS cWaehrung, ebay_item.ListingType AS ListingType, ebay_item.ListingDuration, ISNULL(ebay_item2.Gesamtmenge, 0) AS Gesamtmenge,
ebay_xx_sites.www +
CASE WHEN ebay_user.Umgebung = 'Sandbox'
THEN ' (Sandbox)'
ELSE ''
END AS cPlattform, ebay_user.Name AS cEbayUserName, [ebay_item].SiteID, ebay_item.nVariationenAktiv AS ebayItemVariationenAktiv_EbayHelper, [ebay_item].Quantity, ebay_user.Umgebung AS cEbayUserUmgebung_EbayHelper, ebay_xx_sites.www, tArtikel.fEbayPreis AS dEbayPreis_EbayHelper, tArtikel.fVKNetto, tsteuersatz.fSteuersatz, ebay_item.ScheduleServerSide, ebay_item.kItem AS kItem, ebay_item.kArtikel,
tkats.kKategorie, --UNSER VORSCHLAG--
ebay_user.kEbayuser, tArtikel.cLagerAktiv, tArtikel.cLagerKleinerNull, ebay_item.Type, [tArtikel].nPuffer, ebay_item.nVariationenAktiv, ebay_item.GalleryType, ebay_item.nPremium, ebay_item.kTemplate, [ebay_item].PrimaryCategoryId, [ebay_item].SecondaryCategoryId, ebay_item.kPlanung, [ebay_item].bBestandReserviert,CASE WHEN ISNULL(dbo.ebay_item.GalleryType, 'Gallery') = 'Plus' OR ISNULL(dbo.ebay_item.nPremium, 0) > 0 THEN 0 ELSE 1 END AS Color1002,
CASE WHEN ebay_item.ListingType = 'Chinese' THEN 0
ELSE CASE WHEN ebay_item.nVariationenAktiv = 1 THEN 1
ELSE 2
END END AS Color1,CASE WHEN ebay_item.bBestandReserviert = 1 THEN 0 END AS Color2
FROM ebay_item
LEFT JOIN ebay_xx_sites
ON ebay_item.SiteID = ebay_xx_sites.SiteID
LEFT JOIN ebay_user
ON ebay_item.kEbayuser = ebay_user.kEbayuser
LEFT JOIN ebay_de_waehrung
ON ebay_item.Currency = ebay_de_waehrung.Currency
LEFT JOIN ebay_transaction
ON ebay_item.ItemID = ebay_transaction.ItemID
--ANF UNSER VORSCHLAG--
outer apply(
select TOP 1 kKategorie FROM tkategorieartikel WHERE kArtikel=ebay_item.kArtikel
) tkat
outer apply(
select TOP 1 kKategorie FROM tKategorieSprache WHERE tKategorieSprache.kPlattform=1 and kKategorie=tkat.kKategorie
and kSprache=(SELECT kSprache FROM tSpracheUsed WHERE nStandard=1)
) tkats
--END UNSER VORSCHLAG--
--LEFT JOIN tKategorieArtikel
-- ON ebay_item.kArtikel = tKategorieArtikel.kArtikel
-- AND tkategorieartikel.kKategorie = (SELECT TOP 1 kKategorie FROM tkategorieartikel WHERE kArtikel = ebay_item.kArtikel)
--LEFT JOIN tKategorieSprache
-- ON tkategorieartikel.kKategorie = tKategorieSprache.kKategorie
-- AND tKategorieSprache.kSprache =
-- (
-- SELECT kSprache
-- FROM tSpracheUsed
-- WHERE nStandard = 1
-- )
-- AND tKategorieSprache.kPlattform = 1
LEFT JOIN vStandardArtikel AS tArtikel
ON ebay_item.kArtikel = tArtikel.kArtikel
LEFT JOIN ebay_de_laender
ON ebay_item.Country = ebay_de_laender.Country
LEFT JOIN tsteuersatz
ON tartikel.kSteuerklasse = tsteuersatz.kSteuerklasse
AND tsteuersatz.kSteuerzone = 1
LEFT JOIN vLagerbestandEx
ON ebay_item.kArtikel = vLagerbestandEx.kArtikel
LEFT JOIN ebay_vw_htmltemplate
ON ebay_item.htmlTemplate = ebay_vw_htmltemplate.kEbayHtmlTemplate
LEFT JOIN ebay_beschreibungstemplate
ON ebay_item.kItem = ebay_beschreibungstemplate.kItem
LEFT JOIN
(
SELECT kArtikel,
SUM
(
CASE WHEN ebay_item.nVariationenAktiv = 1
THEN tVarKombis.fAnzahlSum
ELSE ebay_item.Quantity END
) AS Gesamtmenge
FROM ebay_item
LEFT JOIN
(
SELECT ebay_item2kombi.kItem, SUM(CAST(ebay_item2kombi.fAnzahl AS INT)) AS fAnzahlSum
FROM ebay_item2kombi
GROUP BY ebay_item2kombi.kItem
) tVarKombis ON tVarKombis.kItem = ebay_item.kItem
WHERE ebay_item.Status IN (3, 7)
GROUP BY dbo.ebay_item.kArtikel
) AS ebay_item2 ON ebay_item2.kArtikel = ebay_item.kArtikel
WHERE (ebay_item.Status = 0 AND ebay_item.Type = 'V') --AND (ebay_item.ItemID like '%685005%' OR tArtikel.cArtNr like '%685005%')
GROUP BY [ebay_item].SiteID, ebay_item.nVariationenAktiv, [ebay_item].Quantity, ebay_user.Umgebung, ebay_xx_sites.www, tArtikel.fEbayPreis, tArtikel.fVKNetto, tsteuersatz.fSteuersatz, ebay_item.ScheduleServerSide, ebay_item.kItem, ebay_item.kArtikel,
tkats.kKategorie, --UNSER VORSCHLAG--
ebay_user.kEbayuser, tArtikel.cLagerAktiv, tArtikel.cLagerKleinerNull, ebay_item.Type, [tArtikel].nPuffer, ebay_item.nVariationenAktiv, ebay_item.GalleryType, ebay_item.nPremium, ebay_item.kTemplate, [ebay_item].PrimaryCategoryId, [ebay_item].SecondaryCategoryId, ebay_item.kPlanung, [ebay_item].bBestandReserviert, ebay_item.TemplateName, ebay_item.Title, tArtikel.cArtNr, vLagerBestandEx.fVerfuegbar - tArtikel.nPuffer, ebay_item.StartPrice, dbo.ebay_item.nPremium, dbo.ebay_item.GalleryType, ebay_de_waehrung.Currency, ebay_item.ListingType, ebay_item.ListingDuration, ISNULL(ebay_item2.Gesamtmenge, 0), ebay_user.Name, ebay_item.nVariationenAktiv