Welcome to Sign in | Help
in Search

Insert

Last post 08-13-2008, 9:38 AM by ignatandrei. 23 replies.
Page 2 of 2 (24 items)   < Previous 1 2
Sort Posts: Previous Next
  •  08-12-2008, 9:38 PM 5486 in reply to 5485

    Re: Insert

    O cheie compusa de obicei mareste dimensiunea indexului care duce la probleme de performanta; insa daca se fac cautari dupa cheie sau componente ale ei merita cantarit.
    Gheorghe Ciubuc,SQL Server Influencer, MCP(SQL 2000), MCTS (SQL Server 2005) , OCA(Oracle 9i), Sybase(Brainbench)
  •  08-12-2008, 11:06 PM 5487 in reply to 5484

    Re: Insert

    tebbaerty:

    Problema e ca daca folosesc un identity atunci acesta in scurt timp va ajunge la o valoare imensa.
    Imagineazati o baza de data in care se sterg si se adauga elemente de foarte multe ori.
    cel putin asa gandesc eu :-?


    bigint ( 2^63-1 (9,223,372,036,854,775,807) * 2, daca pornesti de la minim ...) ?
    Daca nu, poate guid ...

    Ignat Andrei
    http://serviciipeweb.ro/iafblog
  •  08-12-2008, 11:43 PM 5488 in reply to 5486

    Re: Insert

    ggciubuc:
    O cheie compusa de obicei mareste dimensiunea indexului care duce la probleme de performanta;

    Discutabil.
    insa daca se fac cautari dupa cheie sau componente ale ei merita cantarit.

    Dacă selectivitatea condiţiei(ţiilor) este scăzută.

    Cât despre int/bigint cred că autorul a facut nişte calcule greşite.
    Un calcul simplu indica urmatoarele (calculul pleacă de la ce se scrie aici: ejobs se lauda cu 350 job-uri zilnice noi ): 500 job-uri/zi x 356 zile/an = 178.000 job-uri / an x 10 ani = 1.780.000 job-uri / 10 an.i Cu mult sub limita de 2.147.483.647 de la tipul int (nu bigint). Cu alte cuvinte in ritmul de 500 job-uri / zi ar trebui să treacă mai mult de 100 de ani pentru a se putea ajunge la limita maxima de două miliarde şi ceva. Pănă atunci vom fi de mult oale şi ulcele Smile.
  •  08-13-2008, 12:16 AM 5489 in reply to 5488

    Re: Insert

    Dap cred ca aveti dreptate. Dar motivul pentru care am pus o cheie compusa este ca nu imi trebuia un id ci o cheie compusa pentru a nu permite 2 inregistrari identice cum a dat exemplu persoana de mai sus (acela cu facturile) . Probabil era si alta metoda dar pe moment asa mi s-a parut firesc :D

    si int nu are 65.000 ? .. bine normal ca puteam sa folosesc bigint. :D

  •  08-13-2008, 12:22 AM 5490 in reply to 5488

    Re: Insert


    Cu alte cuvinte in ritmul de 500 job-uri / zi ar trebui să treacă mai mult de 100 de ani pentru a se putea ajunge la limita maxima de două miliarde şi ceva. Pănă atunci vom fi de mult oale şi ulcele Smile.

    Si dvs cand faceti un program il faceti ca atunci cand ve ti fi oale si ulcele sa nu mai poata fi folosit ? :D daca faci ceva sa nu se treazeasca stra stra stra nepotii nostri ca nu pot folosi ce a scrit bunicutzul lor mult iubit.:P

    bine imi dau seama ca suna aberant dar nu m-am putut abtine :D .. scz daca provoc inconveniente

  •  08-13-2008, 12:30 AM 5491 in reply to 5490

    Re: Insert

    tebbaerty:


    Cu alte cuvinte in ritmul de 500 job-uri / zi ar trebui să treacă mai mult de 100 de ani pentru a se putea ajunge la limita maxima de două miliarde şi ceva. Pănă atunci vom fi de mult oale şi ulcele Smile.

    Si dvs cand faceti un program il faceti ca atunci cand ve ti fi oale si ulcele sa nu mai poata fi folosit ? :D daca faci ceva sa nu se treazeasca stra stra stra nepotii nostri ca nu pot folosi ce a scrit bunicutzul lor mult iubit.:P

    bine imi dau seama ca suna aberant dar nu m-am putut abtine :D .. scz daca provoc inconveniente


    Big Smile Nu e bine să te abţii ... cum ar zice cineva.
  •  08-13-2008, 12:49 AM 5492 in reply to 5489

    Re: Insert

    tebbaerty:

    Dap cred ca aveti dreptate. Dar motivul pentru care am pus o cheie compusa este ca nu imi trebuia un id ci o cheie compusa pentru a nu permite 2 inregistrari identice cum a dat exemplu persoana de mai sus (acela cu facturile) . Probabil era si alta metoda dar pe moment asa mi s-a parut firesc :D

    si int nu are 65.000 ? .. bine normal ca puteam sa folosesc bigint. :D

    Ok.
    Exemplul cu acea factura nu este bine ales deoarece:
    [1] dacă tabela Factura are cheia primară compusă din Serie+Nr factură atunci
    [2] tabela ProduseFacturate va avea o cheie externă compusă Serie+Nr factură problemă urâtă (cel puţin de mine dmmpdv) ...

    Soluţia pe care o prefer în această situaţie este cea a unei chei primare artificiale în tabela Factură de forma CodFactura
    (de tip INT cu IDENTITY(1,1) sau de tip GUID) plus o cheie candidat (conceptual vb.) implementabilă sub forma unui index cu valori unice compus din Serie  si Nr factura:

    CREATE TABLE Factura
    (
    CodFactura INT IDENTITY(1,1) PRIMARY KEY,
    Serie VARCHAR(10) NOT NULL,
    Nr INT NOT NULL,
    Data DATETIME NOT NULL
    );
    GO

    CREATE UNIQUE NONCLUSTERED INDEX Factura_SerieNr ON Factura (Nr,Serie);
    GO

    INSERT INTO Factura (Serie,Nr,Data) VALUES ('A',1,'2008-01-01');
    INSERT INTO Factura (Serie,Nr,Data) VALUES ('A',1,'2008-02-02');
    GO


    Chiar si combinatia Serie + Nr are anumite probleme.


  •  08-13-2008, 9:33 AM 5493 in reply to 5489

    Re: Insert

    tebbaerty:

    Dar motivul pentru care am pus o cheie compusa este ca nu imi trebuia un id ci o cheie compusa pentru a nu permite 2 inregistrari identice cum a dat exemplu persoana de mai sus (acela cu facturile) . Probabil era si alta metoda dar pe moment asa mi s-a parut firesc :D


    Metoda se numeste index unique , citeste aici
    http://www.odetocode.com/Articles/70.aspx

    Ignat Andrei
    http://serviciipeweb.ro/iafblog
  •  08-13-2008, 9:38 AM 5494 in reply to 5490

    Re: Insert

    tebbaerty:


    Cu alte cuvinte in ritmul de 500 job-uri / zi ar trebui să treacă mai mult de 100 de ani pentru a se putea ajunge la limita maxima de două miliarde şi ceva. Pănă atunci vom fi de mult oale şi ulcele Smile.

    Si dvs cand faceti un program il faceti ca atunci cand ve ti fi oale si ulcele sa nu mai poata fi folosit ? :D daca faci ceva sa nu se treazeasca stra stra stra nepotii nostri ca nu pot folosi ce a scrit bunicutzul lor mult iubit.:P

    bine imi dau seama ca suna aberant dar nu m-am putut abtine :D .. scz daca provoc inconveniente


    Atunci un GUID iti rezolva problema ...

    Ignat Andrei
    http://serviciipeweb.ro/iafblog
Page 2 of 2 (24 items)   < Previous 1 2
View as RSS news feed in XML
Powered by Community Server (Commercial Edition), by Telligent Systems