IT NEWS PC REVUE PC FORUM FreeBSDInternet time: @709
Obsah fóra
Pravidlá  •  Kontakt  •  Prihlásenie  •  Registrácia

Magio Internet

Najobľúbenejší internet teraz získate na prvých 100 dní úplne zadarmo. telekom.sk

OmegaMarine Forte

Eskimáci vedia, čo je zdravé Získajte balenie zadarmo www.naturamed.sk

Spoločnosti Online s.r.o.

Ponúkame čisté spoločnosti. Obchodný register vybavíme za vás! www.spolecnostionline.cz

Schudla som 15kg za 4 týždne

Uspela som! Schudla som bez diét a cvičenia. Prečítajte si viacej tu www.janinblog.com

Zľava 50% náušnice z minerálov

Od 2€ až 1000 párov na výber Exkluzívny shop s minerálmi v Bratislave www.milishop.eu

C# Aplikácia

Zaslať odpoveď
AutorSpráva
dEVIANT
Užívateľ
Užívateľ

Založený: 04.12.2008
Príspevky: 59

PríspevokZaslal: Pi 02.04.10 16:35Odpovedať s citátomNávrat hore

Dá sa nejako pomocou napr. Singletonu spraviť, aby sa mi po spustení aplikácie otvorilo spojenie na Oracle DBS, a po skončení uzavrelo?

Myslím,žeby mi to určite zrýchlilo aplikáciu, keďže by sa pri dotazoch nemusel stále otvárať spojenie atď.

Poprosil by som konkrétny kus kódu...skúšal som to nejako takto...



kód:
 private static OracleConnection connection = new OracleConnection(oradb);
        private DatabaseControl() { connection.Open(); }

        public static DatabaseControl Instance
        {
            get
            {
                if (instance == null)
                {
                    instance = new DatabaseControl();
                }
                return instance;
            }
        }


No ale keď som potom z jednej metódy vymazal using (connection = new OracleConnection(oradb))
{ ... }, resp. len using(connection) tak to nešlo...:/

Viete mi pomôcť?

_________________
Robím, čo možem. Keď nerobím, nemožem.
Zobraziť informácie o autoroviOdoslať súkromnú správuICQ
Ezekiell
Užívateľ
Užívateľ

Založený: 26.09.2007
Príspevky: 53
Bydlisko: Zákopčie, Kysuce

PríspevokZaslal: Pi 02.04.10 20:22Odpovedať s citátomNávrat hore

Tak v prvom rade ked pouzijes using bez vytvorenia novej instancie tak po konci oboru platnosti definovaneho usingom sa automaticky pre ten objekt vola garbage collector a objekt ti zrusi.

To ale len tak pomimo. Osobne by som totiz urcite neriesil pripajanie na DB cez singleton. Pripojenie na databazu a odpojenie netrva zas tak dlho ako si ty predstavujes a ked uz by si to chcel optimalizovat tak optimalizuj len pripojenia v ramci nejakej aktivity (myslim tymsubor cinnosti medzi dvoma vstupmy od uzivatela) ale nie pocas behu celej aplikacie. Nech sa vyjadri aj niekto iny ale podla mna je to blbost.

Neviem aku velku aplikaciu mas ale pokial si myslis ze kvoli DB pocitujes zmenu vykonu tak by si sa mal skor zamerat na optimalizaciu databazy a poctu pripojeni a nie riesit to takymto "hackom".

Ale je to len moj nazor.

_________________
Život by bol jednoduchší, keby sme k nemu mali zdrojový kód!
Zobraziť informácie o autoroviOdoslať súkromnú správuSkypeZobraziť autorove WWW stránky
mbc
Užívateľ
Užívateľ

Založený: 20.07.2008
Príspevky: 411
Bydlisko: Mokrance

PríspevokZaslal: Pi 02.04.10 20:33Odpovedať s citátomNávrat hore

singleton neodporucam z vlastnej skusenosti
.NET pouziva connection pooling, takze otvaranie/zatvaranie pripojenia nespomaluje beh aplikacie
napr: http://msdn.microsoft.com/en-us/library/ms254502.aspx

napis komplet kod, ako robis dotazy na DB....

_________________
CPU: Q9550@3.4GHz + Noctua NH-U12P MB: Gigabyte P35-DS3R RAM: 4x2GB Geil Black Dragon VGA: Sapphire HD5770 + Accelero L2 Pro SSD: Corsair Extreme 64GB + Kingston V+ 64GB + Patriot PC25S HDD: WD10EARS + Silentmaxx + Scythe KamaBay + Noctua NF-S12-800 DVD: Samsung SH-S203D CASE: Compucase 6XG3 + 2xNoctua NF-S12B-FLX PSU: Seasonic X-650 AUDIO: Fubar4 + Creative I-Trigue 3500 + AKG K271 MOUSE: Logitech G500 + SteelPad QcK KEYB: Logitech Illuminated LCD: Benq FP241W PVA SAT: Skystar HD2 USB + SG2100 PERIF: RGT FF Pro + Logitech Chillstream + OKI Laser MFP B2500 PHONE: Galaxy S CARS: STI+VTS
Zobraziť informácie o autoroviOdoslať súkromnú správuICQZobraziť autorove WWW stránky
dEVIANT
Užívateľ
Užívateľ

Založený: 04.12.2008
Príspevky: 59

PríspevokZaslal: So 03.04.10 0:14Odpovedať s citátomNávrat hore

Normále každý dotaz začína using connection...

Ezekiell, ten server je škólsky pre všetkých študentov...takže to bude asi v tom...

_________________
Robím, čo možem. Keď nerobím, nemožem.
Zobraziť informácie o autoroviOdoslať súkromnú správuICQ
Ezekiell
Užívateľ
Užívateľ

Založený: 26.09.2007
Príspevky: 53
Bydlisko: Zákopčie, Kysuce

PríspevokZaslal: So 03.04.10 11:49Odpovedať s citátomNávrat hore

A mas predstavu alebo odhad kolko krat sa aplikacia pripaja medzi jednotlivymi vstupmi uzivatela?
Myslim ze ked budes pouzivat
using (connection = new OracleConnection(oradb)) tak nemas problem.

_________________
Život by bol jednoduchší, keby sme k nemu mali zdrojový kód!
Zobraziť informácie o autoroviOdoslať súkromnú správuSkypeZobraziť autorove WWW stránky
nordic
Užívateľ
Užívateľ

Založený: 15.05.2010
Príspevky: 1

PríspevokZaslal: So 29.05.10 3:42Odpovedať s citátomNávrat hore

Co takto toto ? CommandBehavior.CloseConnection hned po execute.

kód:
 
public override DbDataReader GetCokolvek()
      {
        const string sqlString = @"SELECT [id] id, [name] text FROM dbo.countries (NOLOCK)";

        Database.DatabaseConnection conn = DataLayer.DbContext.GetConnection();
     
        using (DbCommand dbc = conn.CreateCommand(sqlString.ToString(), System.Data.CommandType.Text))
        {
          return dbc.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
        }
      }
Zobraziť informácie o autoroviOdoslať súkromnú správu
TJ
Užívateľ
Užívateľ

Založený: 10.07.2009
Príspevky: 26

PríspevokZaslal: Po 21.06.10 15:14Odpovedať s citátomNávrat hore

No ja by som to urcite robil cez Singleton. V konstruktore otvoris spojenie a zabit ti to staci az uplne na konci programu, cez nejaku metodu Close().
Zobraziť informácie o autoroviOdoslať súkromnú správu
dEVIANT
Užívateľ
Užívateľ

Založený: 04.12.2008
Príspevky: 59

PríspevokZaslal: Št 24.06.10 13:46Odpovedať s citátomNávrat hore

Dík za rady... riešim to ako odpojenú aplikáciu...teda sa zmeny v DBS neprejavu hneď ale až po uložení.

_________________
Robím, čo možem. Keď nerobím, nemožem.
Zobraziť informácie o autoroviOdoslať súkromnú správuICQ
Zobraziť príspevky z predchádzajúcich:    
Zaslať odpoveď
Nemôžete pridávať nové témy do tohto fóra.
Nemôžete odpovedať na témy v tomto fóre.
Nemôžete upravovať svoje príspevky v tomto fóre.
Nemôžete mazať svoje príspevky v tomto fóre.
Nemôžete hlasovať v tomto fóre.

Powered by phpBB 2.x.x © 2005 - 2012 PCforum, webhosting by WebSupport, edited by JanoF

SEO - optimalizácia pre vyhľadávače

Freebsd