Adodb közvetlen felvétel és egyéb műveletek SQL - táblázatok (MS SQL Server 2018)

Ebben az esetben van értelme, hogy közvetlen felvétel az SQL-tábla?

Ha szüksége lehet egy közvetlen belépés a SQL -Table a platform 1C 8.1?

Esetünkben 1S8.1 regisztertáblából használtuk forrásként az adattovábbítás másik fiókba tárol. Egy ideig úgy működött, 1C. De eljött a pillanat, amikor a nyilvántartás felvételi eljárás nem volt megfelelő, hogy tartsa egy csomó időt. Ebben az esetben az összes adatot a nyilvántartásban „sürgős szükség van.”







Hogyan lehet felgyorsítani a rögzítési folyamat SQL-tábla

Miután néhány megpróbáltatásai (optimalizálása dolgozó SQL nem voltam képes túlszárnyalni szempontjából 1C), felmerült a kérdés, ami a indexelési asztalra. Ennek eredményeként úgy döntöttek, hogy másolja a bejegyzési tábla egy külön asztal és megöli az összes indexek, amelyek gyorsított eljárásban közvetlen belépés időnként.

Az alábbi leírás egy végrehajtása a rögzítési folyamat SQL -Table nélkül indexek.

Nézzük egy konkrét példát.

Tegyük fel, hogy az előttünk álló probléma:

  • Gyűjteni bizonyos számlákat a kiküldetés ideje összefüggésben szervezetek (.org) és forgatókönyvek (jelenetek), hogy az adatokat bizonyos szabályok szerint, és írni az adatokat egy másik adatbázis tábla
  • Bejegyzés időszak szervezetek és forgatókönyveket kell felülírni
  • Meg kell biztonsági másolatot készíteni a táblázat formájában példányban a dátum

végrehajtás

Ahhoz, hogy hozzon létre egy adatbázist, meg kell „Enterprise Manager” (1. ábra)

Nyitva a "Enterprise Manager". Mi vagyunk elhelyezése a mappa „adatbázisok”, majd jobb gombbal hozzon létre egy új adatbázist (2. ábra).

Adodb közvetlen felvétel és egyéb műveletek SQL - táblázatok (MS SQL Server 2000)

Adatbázis létrehozása (3. ábra).

Adodb közvetlen felvétel és egyéb műveletek SQL - táblázatok (MS SQL Server 2000)

A bázis beállítása ábrán látható a 4. és 5.

Adodb közvetlen felvétel és egyéb műveletek SQL - táblázatok (MS SQL Server 2000)

Adodb közvetlen felvétel és egyéb műveletek SQL - táblázatok (MS SQL Server 2000)

(T-SQL:
Adatbázis létrehozása MyBase
Módosítja adatbázis MyBase SET Recovery Egyszerű
Módosítja adatbázis MyBase SET Auto_Shrink ON)

Nyisd ki a bázis pozícionálja a „táblázatok”, és a jobb egérgombbal - hozzon létre egy új táblát (6. ábra).

Adodb közvetlen felvétel és egyéb műveletek SQL - táblázatok (MS SQL Server 2000)

Követve TK, mi van a „kulcs” mezőben:

A többi mező képviselt formájában alaptípus (ábra. 7). És érték hosszuk hozott 1C nyilvántartásba.

Adodb közvetlen felvétel és egyéb műveletek SQL - táblázatok (MS SQL Server 2000)

Így van egy táblázat „MyTable” (8. ábra):

Adodb közvetlen felvétel és egyéb műveletek SQL - táblázatok (MS SQL Server 2000)

Ahhoz, hogy helyesen működjön, írni a forgatókönyvet, és a szervezet, mint a referencia (ábra. 8). Ez lesz később szükség.

Adodb közvetlen felvétel és egyéb műveletek SQL - táblázatok (MS SQL Server 2000)






Nem állítom, hogy a kezelést kell kinéznie. Meg kell jegyezni, hogy az adatok feldolgozása és átvezetése a nyilvántartásba részben.

Adatgyűjtés és feldolgozás

Ebben az esetben ez a folyamat nem érdekes. A végén van egy táblázatot az értékek „tablitsaDannyh”

A tisztítást táblázat bejegyzés regiszter

Fogjuk használni a következő séma szerint:

Nem adom az összes feldolgozási kód, hangsúly csak a főbb pontokat.

StrokaKonnekta = "Provider = SQLOLEDB; Password = SDR $ 543Qr; fennállnak Biztonsági Info = True; User ID = userSQL; eredetileg Catalog = MyBase; Data Source = serverSQL";

// A GUID Forrás: Mista. ru

További saját kutatás:

Adodb közvetlen felvétel és egyéb műveletek SQL - táblázatok (MS SQL Server 2000)

Fragment tisztítás és rögzítő kódot a nyilvántartásban:

Adodb közvetlen felvétel és egyéb műveletek SQL - táblázatok (MS SQL Server 2000)

Adodb közvetlen felvétel és egyéb műveletek SQL - táblázatok (MS SQL Server 2000)

Adodb közvetlen felvétel és egyéb műveletek SQL - táblázatok (MS SQL Server 2000)

Meg kell jegyezni, hogy a fenti kódrészlet felett „társaság” - Szervezet, „alap” - script „ENTITY_NAME” - egy példa a karakterlánc értékét „InRep” - logikai és „summ” - az összeg.

Csak szeretném megemlíteni, hogy az archiválás másolásával lehet az asztalon egy bizonyos időpontban.

Adodb közvetlen felvétel és egyéb műveletek SQL - táblázatok (MS SQL Server 2000)

55. Alexander Speshilov (speshuric) 950 16.02.11 23:36 Most a témában

Nem vész el, csak egy kicsit terhelt.
Szóval Mintegy apróságok.
Az én (nem csak az enyém) irányításához kapcsolódó, az ügyfél ügylet, én alapvetően mondta. De még van idő. Küldése „megkezdeni a tranzakciót” közvetlenül, nem tartjuk a szerver, hogy egyes szolgáltatók (is, és MS SQL is, de nem ADO, de ADO.NET) lehet működtetni kapcsolatkészletezés módban. Jó, hogy az ügyfél gyorsan felveszi kapcsolatot a medence, ahelyett, hogy „hosszú” várja kapcsolat létrehozásakor, de ez a mechanizmus bonyolultabb. És Buggy. Ie „Megkezdeni a tranzakciót” hipotetikusan is elhagyja a rossz kapcsolat, hogy más kéréseket és a „COMMIT”, bár nem olyan triviális. Nem, persze, általában Fix (razarbotchikom driver), de miért keresnek egy gereblye, ha a kapcsolat van mód BeginTrans, CommitTrans és RollbackTrans?

Nem világos, tervezés

Miért párja a tranzakció? Szüksége van egy tranzakció - lök a lekérdezésben. Csak akkor, ha használni több parancsot egyetlen lekérdezés, szükséges, hogy először helyezze be a „SET nocount ON;”. Tény, hogy a tranzakció csak akkor felesleges hopping 1C ADO, így könnyebben tisztítható.

Furcsa megjegyzés „Érdemes megemlíteni, hogy a rekord a táblázat SQL kell lennie a megfelelő tulajdonos az asztalra.”. Sejtem, mit jelent (például, hogy a bejelentkezés kínálják, hogy megfeleljen a felhasználói adatbázis alapértelmezett séma dbo), hanem a jobb - nem egyértelmű. Jobb a szkript táblázatok és bejelentkezések - ez egyedülálló.

Hanyag munkát zárójelben a darab:

Ha nem érdekel, amit írsz, akkor a „kezdő” lehet érteni a tervezet?

Miért a vonalon SokrLP buzdított? Ő poobkusaet azt. Oké jobb harapás (harapás, és van egy csomó látható), de aztán maradt harapni!

Ez furcsa, hogy a tranzakciók használnak, de felülírása (mintha egyetlen művelet) eltávolítjuk egy tranzakció, és a beiktatást a másik. Nipanyatna.

Dobd asztal egy tranzakció egy hurkot az ügyet, ahogy korábban írtam - végül is az ón. Valójában - teljesen egyfelhasználós megoldás.

Kell „archiválás” a kötetek is komoly kétség. A táblák térfogata legfeljebb 100 GB évente fürtözött index egy időpontra elég gyakran a fülüket. És akkor használd a particionálás.

Lekérdezéséhez sysobjects megy anélkül, hogy korlátozná a típusú objektumok. És mi lesz az eljárás az azonos név?

Ha közel vagyunk a végén egy kapcsolat, akkor miért nem zárja be rekordsety használat után?

További. Az Execute eljárás, a kapcsolat és a csapat valójában paramétereket, ami egy kicsit maszk és CommandTypeEnum ExecuteOptionEnum. Különösen nem egy olyan paraméter „adExecuteNoRecords”, ami ajánlott lekérdezések futtatásához amelyen várhatóan nem eredményez. By the way, az olvashatóság azt ajánljuk, hogy a konstrukció típusát

így lehet, hogy a kód nagyon olvasmányos és hordozható VBS.

Példa a műveletet a paraméterek itt található. Röviden, a profik: az alap lehetetlensége SQL injection, akkor nem kell gondolni képviseletét állandók (számok, dátumok), egy összeállítás kérést a szervernek, a megtakarítás a hálózati forgalmat. Kevésbé ismert, hogy magamra: bizonyos típusú nagyon egyszerű lekérdezés (pl beszúrni keskeny asztal nélkül indexek) miatt a lassú munka találkozásánál 1C és COM gyorsabb 1C összegyűjti a kívánt script (hanem, hogy képes legyen), és küldje el a szerver.

Záró tippeket. Szerint a MS SQL az alapértelmezett READ COMMITTED elkülönítési szint, és rögzítse a bejegyzések (ha lehetséges) egy további emelése a száma zárak. Ez általában kényelmes, de nem abban az esetben, ömlesztett rakomány. Abban az esetben, ömlesztve: menteni a memória, jobb zár az egész asztal végéig a tranzakciót.

De általában, ha érdekli a teljesítmény adatok betöltése, akkor jobb, ha húzza szimpatikus elméletet. lefordítani át a gyakorlatba. És ha azt szeretnénk, hogy egy példát kezdőknek, nem superperegruzki hogy ez a példa is kiválóan szép a maga egyszerűségében: meg kell ugyanabban a stílusban az írás (és nem Conn, akkor CONN), akkor teljesnek kell lennie, és hajtanak végre, akkor úgy igaz nemcsak a szempontból egy kezdő, hanem a szempontból normális programozó.




Kapcsolódó cikkek