eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.pecetSerwer dla MS-SQL (crosspost) › Re: Serwer dla MS-SQL (crosspost)
  • Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask
    .pl!news.nask.org.pl!news.interia.pl!not-for-mail
    From: Adam <a...@p...onet.pl>
    Newsgroups: pl.comp.os.ms-windows.winnt,pl.comp.pecet
    Subject: Re: Serwer dla MS-SQL (crosspost)
    Date: Sat, 19 Apr 2014 19:00:33 +0200
    Organization: INTERIA.PL S.A.
    Lines: 134
    Message-ID: <liua3i$s0u$1@usenet.news.interia.pl>
    References: <lir1o7$rq5$2@usenet.news.interia.pl>
    <53511928$0$2153$65785112@news.neostrada.pl>
    <lir8no$anp$1@usenet.news.interia.pl>
    <53516316$0$2233$65785112@news.neostrada.pl>
    <litnm7$l45$1@usenet.news.interia.pl>
    <53527a63$0$2241$65785112@news.neostrada.pl>
    NNTP-Posting-Host: ent22.internetdsl.tpnet.pl
    Mime-Version: 1.0
    Content-Type: text/plain; charset=ISO-8859-2; format=flowed
    Content-Transfer-Encoding: 8bit
    X-Trace: usenet.news.interia.pl 1397926834 28702 83.15.205.22 (19 Apr 2014 17:00:34
    GMT)
    X-Complaints-To: u...@f...interia.pl
    NNTP-Posting-Date: Sat, 19 Apr 2014 17:00:34 +0000 (UTC)
    User-Agent: Mozilla/5.0 (Windows NT 5.2; rv:24.0) Gecko/20100101 Thunderbird/24.4.0
    In-Reply-To: <53527a63$0$2241$65785112@news.neostrada.pl>
    Xref: news-archive.icm.edu.pl pl.comp.os.ms-windows.winnt:252592
    pl.comp.pecet:1235222
    [ ukryj nagłówki ]

    W dniu 2014-04-19 15:29, wloochacz pisze:
    > W dniu 2014-04-19 13:46, Adam pisze:
    (...)>> A jak jest za mało - można zmigrować pod ERP np. Comarch XL.
    > OKiej - to ja mam pytanie :-)
    > Mam potrzebę integracji swojego systemu z CDN XL (o przepraszam,
    > Comparch ERP XL) w najnowszej wersji.
    > Nie chcę robić partnera w Comarchu dla jednej integracji, a nie posiadam
    > ani wersji demo ani dokumentacji do bazy danych CDN XL.
    > Czy ktoś z was móglby mnie poratować w tej sytuacji?
    > Głownie chodzi o napisanie widoków do pobierania danych o zleceniach
    > produkcyjnych.
    > Kwestia sposobu rozliczenia do dogadania.
    >

    Spróbuję w miarę moich niewielkich możliwości pomóc.

    Napisz mi maila ma
    a.g
    małpka
    poczta.onet.pl
    z tematem [CDN-XL]
    to podam Ci mój normalny mail, i zobaczymy, co da się zrobić.

    Mogę Ci udostępnić dokumentację i wersję demo - jednak musiałbym Ci albo
    wysłać klucz HASP, albo go udostępnić przez Internet.
    Tak czy inaczej - no problem :)

    >>>> Są firmy, które mają po 40 ludków siedzących na jednym starym ML 350 G3
    >>>> i jakoś to wyrabia.
    >>>> Problem zaczyna się przy "dużych" bazach danych, mających po kilka
    >>>> milionów rekordów w największych tabelach - wtedy macierz nie wyrabia z
    >>>> wydajnością.
    >>>> Tabel jest blisko 400, sporo kluczy i indeksów, bardzo dużo triggerów.
    >>>> Samo dopisanie pozycji do faktury (z poziomu Optimy) generuje
    >>>> kilkadziesiąt procedur (?) - m.in. sprawdzanie rezerwacji, sprawdzanie
    >>>> stanów magazynowych, sprawdzanie płatności, rabatów, itd, itd.
    >>
    >> Aż z ciekawości sprawdziłem:
    >>
    >> Comarch Optima - 350 tabel
    >> Comarch XL w jakiejś starszej wersji - 469 tabel
    >> Enova - 326
    >> Wapro - 435
    >> Subiekt - 570
    >>
    >> Ale to jeszcze o niczym nie świadczy.
    >> Widziałem (nie pamiętam, gdzie) pola typu DECIMAL(15,2) używane do
    >> przechowywania flagi, gdzie wystarczyłoby pole SMALLINT.
    > Wystarczyłoby - a i pewnie, ale tak się nie projektuje dużego systemu.
    > Najpierw definiujesz sobie własne typy danych (domneny), a potem ich
    > używasz. jakbym miał w kazdym polu każdej tabeli okreslać typ i rozmiar
    > to by mnie k...wica strzeliła bardzo szybko :)

    Nie rozumiem.
    Wydawało mi się, że definiując tabelę w SQL, należy też zdefiniować
    poszczególne pola, czyli przykładowo:

    CREATE TABLE [CDN].[TraNag](
    [TrN_TrNID] [int] IDENTITY(1,1) NOT NULL,
    [TrN_RelTrNId] [int] NULL,
    [TrN_FVMarza] [tinyint] NULL,
    [TrN_DDfId] [int] NULL,
    [TrN_TypDokumentu] [int] NOT NULL,
    [TrN_ZwrId] [int] NULL,
    [TrN_ZwrIdWZKK] [int] NULL,
    [TrN_FaId] [int] NULL,
    [TrN_NumerNr] [int] NOT NULL,
    [TrN_NumerString] [varchar](31) NOT NULL,

    itd.

    > Coś za coś - wydajność nie jest jedynym kryterium, chodzi też o
    > utrzymanie i prosty rozwój systemu.
    >
    >> Podobnie, można "przytkać" bazę wrzucając dane binarne, typu PDF czy JPG.
    > To jest mit ;-)
    > Baza nie zostanie przytkana, tylko drastczynie zmieni się jej rozmiar -
    > ale to ma raczej niewleki wpływ na wydajność... Oczywiście wszystko
    > zależy od tego, w jaki sposób będziemy tego używać.
    >
    > Jeśli takich danych jest naprawdę dużo, to MSSQL oferuje bardzo fajny
    > mechanizm do obsługi takich danych. Mam na myśli FileStream, a od wersji
    > 2012 FileTables - i to jest naprawdę cool!
    >

    Muszę w wolnej chwili poczytać. Dzięki za info.


    (...)
    >> A przetwarzanie wierszy (i gadanie o kursorach) to chyba domena
    >> programistów, zaczynających od Clippera ;)
    >>
    >> Chociaż ja też do tej pory nie odróżniam indeksu od klucza w SQL.
    >> Czy chodzi o to, że klucz "leci" po kilku polach?
    > Nie; jedne i drugie moga być wielopolowe.
    > Klucze to ograniczenia, a indeksy to mechanizm podobny do skorowidzu w
    > książce, którego podstawowym celem jest przyspieszenie operacji
    > wyszukiwania danych w tabelach (ale nie tylko w tabelach, doczytać o
    > tzw. widokach zmaterializowanych).
    > (...)

    Dzięki, nieco się rozjaśniło. Przynajmniej już wiem, jakich informacji
    szukać.

    > Używanie triggerów do zapewnienia integralności referencyjnej jest, moim
    > zdaniem, błędem. Jest tylko jeden przypadek, kiedy trzeba użyć takiego
    > mechanizmu w MSSQL - ale to wyjątek od reguły.

    Optima jest (była?) pomyślana jako system "strojony" pod klienta.
    Naprawą baz w założeniu mieli się zajmować serwisanci o różnym stopniu
    wiedzy.
    Stąd też np. przy kasowaniu rekordu (bezpośrednio w bazie danych) w
    TraNag (nagłówku transakcji) sprawdzane są najprzeróżniejsze warunki,
    takie jak rezerwacje, płatności, stany na poszczególnych magazynach i
    całe mnóstwo innych. Stąd ktoś (nawet przypadkowy), kto "dobierze się"
    do bazy danych SQL nawet prostym skanerem, nie jest w stanie jej zepsuć.
    No, chyba że zna polecenie:
    Alter table cdn.JakasTabela disable trigger all

    Czasami zdarza się go używać, ostatnio np. musiałem zmienić definicję
    numeracji kasy na "żywym" raporcie kasowym z SYMBOL/NR/ROK na
    SYMBOL/NR/KASA/ROK czy jakoś tak.

    Tak więc z mojego punktu widzenia trigger jest co najmniej pomocny, żeby
    nie powiedzieć niezbędny. Ale być może czegoś nie wiem.
    Nie wyobrażam sobie "gmerania" na bazie danych z
    kilkudziesięciostronicowym materiałem opisującym jakieś zależności czy
    uwarunkowania.


    --
    Pozdrawiam.

    Adam

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: