en-USsv-SE

Active Forums

PrevPrev Go to previous topic
NextNext Go to next topic
Last Post 16 Apr 2013 12:51 PM by  HenrikF
SQLug.se challenge 2012
 30 Replies
Sort:
You are not authorized to post a reply.
Page 1 of 212 > >>
Author Messages
JAhlen
Veteran Member
Veteran Member
Posts: 144


--
27 May 2012 10:51 AM

    Nu drar 2012 års svenska mästerskap för SQL Server utvecklare igång, arrangerat av SQLUG.

    Tävlingen är både individuell och per företag. Som tävlande representerar man både sig själv som individ och det företag man jobbar på.

    Bästa individuella insats vinner en Nokia Lumia 800 smartphone. Bästa företagsinsats vinner en presentcheck på utbildning värd 15 000 kr hos Informator.

    Den största vinsten är naturligtvis äran att kunna titulera sig vinnare i SQLug.se challenge 2012!

    Tävlingssponsorer:



    Informator är Nordens största IT-utbildningsföretag med utbildningscenter i Sverige, Danmark och Finland.


    Tävlingsuppgift

    En strategi på börsen är att använda sig av så kallad ”blankning”. Det innebär att man säljer aktier som man lånar. Om man sedan kan köpa tillbaka samma antal aktier till ett lägre pris så kan man göra en vinst.

    Naturligtvis vill de som lånar ut aktier få betalt. årets tävlingsuppgift är att hjälpa en aktiemäklare att ta fram ett kontoutdrag på blankningsaffärer. Som utgångspunkt har vi alla transaktioner. Så fort det uppstår ett negativt saldo inleds en blankningsaffär och så fort saldot inte längre är negativt upphör blankningsaffären. Aktiemäklaren vill ha alla blankningsaffärer numrerade och dessutom skall varje transaktion inom blankningsaffären finnas med.

    Vi har följande fält i vår källdata:

    • TransId, som är ett löpnummer och anger ordningen på transaktioner. är primärnyckel.
    • Konto, ett kundnr
    • Instrument, en sträng på 6 tecken
    • Kvantitet, positivt vid köp och negativt vid sälj

    Exempel

    TransId

    Konto

    Instrument

    Kvantitet

    173891

    552207

    ATCO A

    500

    173892

    552207

    ATCO A

    -400

    173893

    552207

    ATCO A

    -300

    173994

    552207

    ATCO A

    200

    173995

    552207

    ATCO A

    -100

    173996

    552207

    ATCO A

    300

    173997

    552207

    ATCO A

    -1000

    173998

    552207

    ATCO B

    100

    174001

    552207

    ATCO B

    200

    174002

    339104

    ATCO A

    -1000

    174055

    339104

    ATCO A

    1100

    174056

    339104

    ATCO B

    -1000

    174057

    339104

    ATCO B

    900

    Utresultatet skall ha följande fält

    • TransId
    • Konto
    • Instrument
    • AckKvantitet, ackumulerad kvantitet för detta konto/instrument.
    • BlankningsNr, löpnummer på blankningsaffären. Börjar om på 1 för varje nytt instrument eller konto.
    • RadNr, löpnummer inom blankningsaffären. Börjar om på 1 för varje ny blankningsaffär.

    Med vårt exempel ovan skulle utresultatet bli

    TransId

    Konto

    Instrument

    AckKvantitet

    BlankningsNr

    RadNr

    173893

    552207

    ATCO A

    -200

    1

    1

    173994

    552207

    ATCO A

    0

    1

    2

    173995

    552207

    ATCO A

    -100

    2

    1

    173996

    552207

    ATCO A

    200

    2

    2

    173997

    552207

    ATCO A

    -800

    3

    1

    174002

    339104

    ATCO A

    -1000

    1

    1

    174055

    339104

    ATCO A

    100

    1

    2

    174056

    339104

    ATCO B

    -1000

    1

    1

    174057

    339104

    ATCO B

    -100

    1

    2

    Detta skall tolkas som att den första blankningsaffären inleds med TransId 173893 då kunden har -200 aktier i ATCO A. TransId 173994 upphör blankningsaffären, då kunden inte längre har negativt antal aktier i ATCO A. I vissa fall, som TransId 174057, ligger kunden på en negativ utgående ackumulerad kvantitet. I så fall är det den sista transaktionen med samma konto/instrument som också är sista transaktion i blankningsaffären.

    Tävlingsuppgiften är att komma fram till en lösning som fixar uttaget så snabbt som möjligt. Vi vill ha prestanda! I första hand kommer vi att titta på den totala tiden (duration) för lösningen, eftersom det är den tiden slutanvändaren märker av. Skulle två eller flera lösningar vara ungefär lika i tid, kommer antalet processorer som används samt mängden reads att vägas in för att avgöra vilken lösning som är mer effektiv när den är ungefär lika snabb.

    Servern som kommer att användas för testkörningarna har 16 kärnor på 2.5GHz samt 56GB RAM varav 40GB är dedikerat till SQL Server. Diskarna finns på ett Hewlett Packard SAN. Alla körningarna görs med tömd cache. SQL Server 2012 används.

    Din SQL-kod skall returnera svaret som tabellrader. Det skall sorteras på TransId.

    Material

    SQLUGChallenge2012_Setup.txt

    Ladda ned dessa script och kör i SQL Server Management Studio (eller annat favoritverktyg).

    Regler

    § Tävlingen är öppen för SQLUGs medlemmar.

    § Tävlingsbidrag skickas som email till angiven adress. De skall märkas med namn och företag.

    § Vinnare är den/de som har presterat den snabbaste lösningen.

    § Tillåtna metoder är T-SQL.

    § Inga schemaförändringar på befintliga tabeller är tillåtna förutom att skapa icke-klustrade index.

    § Det är tillåtet att skapa index, vyer, funktioner och procedurer (men ej indexerade vyer). Lösningarna måste städa upp efter sig så att de kan köras om och om igen (och ej stör andra användares lösningar).

    § Eventuell vinstskatt betalas av vinnarna.

    § Lösningarna kommer att testköras på en större mängd testdata för att tävlingen skall bli utslagsgivande.

    § Tävlingen avgörs av en jury som består av Johan åhlén, Tibor Karaszi, Lars Utterström och Peter Larsson.

    § Deadline för att komma med tävlingsbidrag är 30 juni kl 22:00 (svensk tid).

    Hur du tävlar

    Emaila din lösning till sqlugchallenge2012@sqlug.se. Skriv ditt namn och företagsnamn (om du också representerar ett företag/organisation). Ditt sql-script skall namnges med ditt namn och ett versionsnummer (t ex Anders_Andersson_1.sql).

    Tävlingsvinster

    Vi tackar Informator, som sponsrar tävlingen med mycket fina vinster!

    Frågor

    Frågor angående tävlingen ställs i detta forum.

    Lycka till!

    JAhlen
    Veteran Member
    Veteran Member
    Posts: 144


    --
    13 Jun 2012 01:34 AM
    Ett litet förtydligande till tävlingen.

    Om ni skapar index i er lösning:
    • Tiden för att skapa indexet räknas med i den totala tiden för ert tävlingsbidrag
    • Ni måste också ta bort indexet

    Lycka till och glöm inte att 30 juni är sista dag att skicka in tävlingsbidrag!

    SwePeso
    New Member
    New Member
    Posts: 67


    --
    13 Jun 2012 07:28 AM
    Här är de första preliminära resultaten. Det är bara de lösningar som ger rätt resultat som redovisas.
    Det märks att det är i slutet av tävlingsperioden. Flera lösningar har blivit betydligt förbättrade! Nyare resultat finns längre ned i denna tråd.


    1. Stefan Gustavsson (#4), Acando AB
    2. Mikael Eriksson (#5), CompuGroup Medical
    3. Christian Janssen (#3), H&M
    4. Sergey Klimkevich (#2), Net Entertainment
    5. Henrik Bergqvist (#5), Part Trap AB
    6. Toine Rozemeijer (#2), Dustin
    7. Rolf Mattson (#1), Connecta AB
    8. Joakim Wennergren (#3), Neovoci AB
    9. Johan Jersby (#1), Avega Group
    10. Ola Hallengren (#1), Saxo Bank
    11. Per Hederos (#2), KnowIT
    12. Ulf Bergqvist (#1), Sogeti


    Finns ert namn inte med i listan så ger er lösning inte rätt resultat. Gör ett nytt försök!

    Jag har själv en Lumia 800 och det är en av de bästa telefoner jag haft i mitt arbete. Den intregrerar mot allt och fungerar som man önskar.

    Jag kommer att köra om alla korrekta lösningar igen efter sista inlämningstillfället.


    //Peter
    Henrik Bergqvist
    New Member
    New Member
    Posts: 1


    --
    19 Jun 2012 08:16 AM
    Hur mäts tiden?
    SwePeso
    New Member
    New Member
    Posts: 67


    --
    19 Jun 2012 06:42 PM
    Tiden mäts med den inbyggda klockan på servern. Vi har inget stoppur som vi startar när scriptet börjar och stoppar när scriptet är kört klart.

    Vi använder en programvara "Test Harness" som är utvecklat för just det här ändamålet.


    //Peter

    ToineR
    New Member
    New Member
    Posts: 12


    --
    20 Jun 2012 04:34 PM
    Vilken version av SQL 2012 körs det på test servern? är det RTM eller CU1/CU2?
    SwePeso
    New Member
    New Member
    Posts: 67


    --
    20 Jun 2012 06:13 PM
    Det är 2012 cu1. Cu2 släpptes i morse så den har jag inte hunnit titta på ännu.
    Jesus
    New Member
    New Member
    Posts: 7


    --
    21 Jun 2012 12:44 PM
    Hej,

    Kul med årets tävling! Tackar så mycket!

    1. Har ni ett skript med lite data i?
    2. Jag har SQL 2008 R2, dvs ingen möjlighet att optimera för SQL 2012. Har ni kompatibilitetsläge 2012 eller lägre?


    Hälsningar,
    Jesús
    SwePeso
    New Member
    New Member
    Posts: 67


    --
    21 Jun 2012 11:29 PM
    Datat ser ut som i tävlingsinlägget, dvs en tabell med TransID, Konto, Instrument och Kvantitet.
    Det borde inte vara svårt att skriva lite kod som skapar en större testmängd.

    Vi kör på SQL Server 2012, kompatibilitetsläge 110.
    JAhlen
    Veteran Member
    Veteran Member
    Posts: 144


    --
    24 Jun 2012 08:04 PM
    För att göra tävlingen ännu mer utslagsgivande ökar vi nu mängden testdata. Detta kan innebära förändringar i ställningen bland bidragen!
    SwePeso
    New Member
    New Member
    Posts: 67


    --
    25 Jun 2012 01:13 PM
    Nya ställningar 2012-06-25.

    1. Christian Janssen (#3), H&M
    2. Stefan Gustafsson (#4), Acando AB
    3. Toine Rozemeijer(#3), Dustin
    4. Henrik Bergqvist (#5), Part Trap AB
    5. Mikael Eriksson (#6), CompuGroup Medical
    6. Sergey Klimkevich (#2), Net Entertainment
    7. Martin Höglund (#3), SQLService
    8. Joakim Wennergren (#3), Neovoci AB
    9. Rolf Matsson (#1), Connecta AB
    10. Johan Jersby (#1), Avega Group
    11. Ola Hallengren (#1), Saxo Bank
    12. Per Hederos (#5), KnowIT
    13. Ulf Bergqvist (#1), Sogeti

    stefan gustafsson
    New Member
    New Member
    Posts: 29


    --
    25 Jun 2012 02:03 PM
    Hej!

    Jag skulle gärna se lite statistik kring testdatan.

    Hur många rader är det totalt ?
    Hur många unika konto ?
    Hur många unika instrument ?
    Hur många unika kombinationer av konto och instrument ?
    Hur många rader blir det i resultatet ?

    Det vore också intressant att se duration för de olika bidragen så här långt.

    /SG
    JAhlen
    Veteran Member
    Veteran Member
    Posts: 144


    --
    26 Jun 2012 09:36 PM
    Hej Stefan!

    Vi lämnar inte ut dessa parametrar förrän tävlingen är över. Vi kan dock säga att det handlar om miljontals rader både i indata och utdata.

    Duration har vi också väntat med att publicera, men vi skall snart börja redovisa de siffrorna i resultattabellen.

    MVH
    Johan
    stefang skrev:
    Hej!

    Jag skulle gärna se lite statistik kring testdatan.

    Hur många rader är det totalt ?
    Hur många unika konto ?
    Hur många unika instrument ?
    Hur många unika kombinationer av konto och instrument ?
    Hur många rader blir det i resultatet ?

    Det vore också intressant att se duration för de olika bidragen så här långt.

    /SG

    JAhlen
    Veteran Member
    Veteran Member
    Posts: 144


    --
    27 Jun 2012 08:41 AM
    Senaste resultaten 2012-06-27

    1. Christian Janssen (#3), H&M
    2. Mikael Eriksson (#6),CompuGroup Medical
    3. Stefan Gustafsson (#7), Acando
    4. Toine Rozemeijer (#3), Dustin
    5. Sergey Klimkevich (#3), Net Entertainment
    6. Martin Höglund (#3), SQL Service
    7. Johan Jersby (#3), Avega Group
    8. Henrik Bergqvist (#6), Part Trap
    9. Håkan Winther (#3), SQL Service
    10. Joakim Wennergren (#3), Neovici
    11. Ola Hallengren (#1), Saxo Bank
    12. Rolf Mattsson (#2), Connecta
    13. Per Hederos (#5), KnowIT
    14. Ulf Bergqvist (#1), SOgeti
    stefan gustafsson
    New Member
    New Member
    Posts: 29


    --
    27 Jun 2012 09:07 AM
    Vad händer om en person skickar in flera lösningar ?

    Använder ni enbart den senaste lösningen för varje person, eller testar ni alla lösningar, och väljer den snabbaste ?
    JAhlen
    Veteran Member
    Veteran Member
    Posts: 144


    --
    27 Jun 2012 10:25 PM
    Hej Stefan,

    Ja, vi testar alla lösningar och väljer den snabbaste.
    JAhlen
    Veteran Member
    Veteran Member
    Posts: 144


    --
    29 Jun 2012 04:58 PM
    Hej,

    Eftersom vi fått in många bidrag som är väldigt jämna måste vi återigen öka testdatamängden för att det skall bli utslagsgivande. Därför kan vi tyvärr inte presentera någon aktuell ställning idag. Eftersom imorgon är sista dagen så publicerar vi inte någon preliminär resultatlista då heller.

    Efter tävlingens deadline så kommer vi att testa alla bidrag igen mycket noga och återkommer sedan med slutliga resultat inom en vecka... Lycka till nu i slutspurten!
    JAhlen
    Veteran Member
    Veteran Member
    Posts: 144


    --
    06 Jul 2012 10:40 AM
    årets svenska mästerskap för SQL Server utvecklare är avgjort!

    Det har varit en mycket hård kamp. Totalt har cirka 100 tävlingsbidrag kommit in, vilket innebär att det har tagit tid att testa och göra en rättvis bedömning. Vi har ökat mängden testdata till 5 miljoner rader fördeladt på 400 instrument och 1500 olika konton. Vi har gjort 25 testkörningar av varje lösning. Mediantiden har använts för att rangordna lösningarna.

    På första plats har vi Christian Janssen från H&M på 8,6 sekunder. Jättestort grattis!!! Christian vinner en Nokia Lumia 800 och en presentcheck på utbildning värd 15000 kr hos Informator.

    På andra plats har vi Stefan Gustafsson från Acando på 9,5 sekunder. På tredje plats har vi Johan Jersby från Avega Group på 10,2 sekunder.

    Ett stort tack till Informator som sponsrat tävlingen.



    Tävlingsresultat (endast bästa bidrag visas):
    +----+-----------------------+------------+------------+------------+------------+-----------+------+
    | # | Name | Min | Avg | Med | Max | Total | Runs |
    +----+-----------------------+------------+------------+------------+------------+-----------+------+
    | 1 | Christian_Janssen_3 | 8 562 | 8 688 | 8 619 | 9 147 | 217 203 | 25 |
    | 2 | Stefan_Gustafsson_7 | 9 171 | 9 562 | 9 538 | 9 807 | 239 072 | 25 |
    | 3 | Johan_Jersby_3 | 9 838 | 10 173 | 10 163 | 10 748 | 254 347 | 25 |
    | 4 | Toine_Rozemeijer_4 | 9 982 | 10 239 | 10 229 | 10 543 | 255 976 | 25 |
    | | Steinar_Andersen_11 | 10 001 | 10 341 | 10 229 | 11 963 | 258 536 | 25 |
    | 6 | Sergey_Klimkevich_3 | 10 029 | 10 310 | 10 319 | 10 679 | 257 771 | 25 |
    | 7 | Mikael_Eriksson_7 | 10 153 | 10 383 | 10 372 | 10 657 | 259 581 | 25 |
    | 8 | Martin_Höglund_3 | 10 450 | 10 686 | 10 644 | 10 976 | 267 161 | 25 |
    | 9 | Henrik_af_Forselles_8 | 11 624 | 11 996 | 11 988 | 12 614 | 299 900 | 25 |
    | 10 | Henrik_Bergqvist_7 | 12 603 | 13 085 | 13 119 | 13 665 | 327 130 | 25 |
    | 11 | Håkan_Winther_3 | 13 571 | 13 898 | 13 851 | 14 209 | 347 458 | 25 |
    | 12 | Ola_Hallengren_1 | 28 046 | 31 004 | 29 763 | 39 793 | 775 122 | 25 |
    | 13 | Rolf_Mattsson_1 | 27 374 | 29 935 | 30 350 | 30 884 | 748 394 | 25 |
    | 14 | Joakim_Wennergren_3 | 29 144 | 32 323 | 32 666 | 34 528 | 808 097 | 25 |
    | 15 | Per_Hederos_5 | 38 578 | 40 193 | 40 253 | 40 977 | 1 004 848 | 25 |
    | 16 | Ulf_Bergqvist_2 | 66 436 | 92 094 | 67 435 | 260 837 | 2 302 357 | 25 |
    +----+-----------------------+------------+------------+------------+------------+-----------+------+
    HenrikF
    New Member
    New Member
    Posts: 8


    --
    06 Jul 2012 11:33 AM
    Stort Grattis till Vinnaren!

    Det skulle vara väldigt kul att få se i alla fall de top 5 bästa lösningarna.
    //henrik
    ToineR
    New Member
    New Member
    Posts: 12


    --
    06 Jul 2012 08:28 PM
    Stort grattis till alla som kom top 3, och specialt till vinnaren.

    Stort tack till alla av sqlug som har arrangerat tävlingen.

    Skulle också gärna ser koden av dom top bidragen för att ser vad det ät som skilljer dom åt.
    You are not authorized to post a reply.
    Page 1 of 212 > >>