Welcome to Sign in | Help
in Search

Salut

Last post 07-12-2009, 9:08 AM by crestinul. 10 replies.
Sort Posts: Previous Next
  •  07-09-2009, 4:51 PM 7378

    Salut

    Exista in Sql ceva gen MultiThreading ?

    am o procedura stocata SQL.

    Ideea este ca daca dau "New Querry" in Sql Manager de mai multe ori si in fiecare "New Querry" pot sa rulez aceeasi procedura.

    Astfel o procedura se ruleaza de mai multe ori in acelasi timp, si daca PC iti permite poti termina jobul care il face procedura intr-un timp mult mai scurt.

    Se poate face o procedura stocata care sa ruleze o alta procedura de mai multe ori in acelasi timp ?

    eu am cautat si nu am gasit asa ceva dar cred ca merge

  •  07-09-2009, 9:09 PM 7379 in reply to 7378

    Re: Salut

    Bănuiesc că ceea ce vrei este Parallel Query Processing / Parallel Processing / Parallel Execution Plans .

    Te înregistrezi pe Google Books şi cauţi paginile 251 - 252 din SQL Server Query Performance Tuning Distilled .


  •  07-10-2009, 10:39 AM 7380 in reply to 7379

    Re: Salut

    Salut ,

    Nu asta este ceea ce vreau.

    Pentru a obtine ceea ce vreau am facut urmatorul lucru.

    Am creat o procedura.

    Am setat  4 Sql Joburi care ruleaza procedura mea cu un parametru

    Primu job cu param = 1
    Primu job cu param = 2
    Primu job cu param = 3
    Primu job cu param = 4

    Toate joburile incep la aceeasi ora.

    Acum daca am un singur job care ruleaza procedura atunci jobul se termina in 5 minute.(incepe la 00:00 si se termina la 00:05)
    Daca am 2 joburi, ele se termina amandoua in 2 minute. (incepe la 00:00 si se termina la 00:02)
    Daca am 3 Joburi ele se termina in 1 min si 20 de secunde. (incepe la 00:00 si se termina la 00:01:20)


    Eu vreau sa obtin o procedura care face asta, sa nu fiu nevoit sa setez 3 4 joburi care sa faca asta.
    :(

    Sper ca acum m-am facut mai inteles :(....

  •  07-10-2009, 11:15 AM 7381 in reply to 7380

    Re: Salut

    Mda... am o solutie pentru tine, pe thread-uri, ... dar nu e Sql - e C#
    Vezi aici, te rog,
    http://www.codeplex.com/sqlconsolidate

    Ignat Andrei
    http://serviciipeweb.ro/iafblog
  •  07-10-2009, 11:34 AM 7382 in reply to 7381

    Re: Salut

    :(...

    M-am gandit si eu la asta numai ca exista urmatoarele delimitari

    sa faci o procedura c# (care nu imi este greu) inseamna sa folosesc un SqlConnection in 2 moduri
    - "context connection = true"
    - "Connection string to DB"

    Nici unul dintre ele nu ma avantajeaza din urmatoarele motive.

    Peste "context connection = true" nu se pot deschide mai multe conexiuni.Daca faci o citire cu SqlConnection ul respectiv, nu poti sa mai faci si o scriere sau o alta citire .. etc.

    Daca folosesti "Connection string to DB" atunci acesta foloseste niste protocoale TCP , Pipeline pe acolo.

    Intradevar poti deschide cate conexiuni vrei la DB astfel, insa nu stii daca procedura ta de c# are dreptul de a se conecta prin TCP la Sql, si in foarte multe cazuri Administratorul restrictionaze accesul de acest gen.

    Deci c# nu ma poate ajuta :(.

    De acceea cautam o solutie care sa fie aplicata numai din SQL, ....

    Alte idei (in afara de cea cu joburile) banuiesc ca nu aveti nu ?
  •  07-10-2009, 1:32 PM 7383 in reply to 7382

    Re: Salut

    tebbaerty:
    :(...


    Daca folosesti "Connection string to DB" atunci acesta foloseste niste protocoale TCP , Pipeline pe acolo.

    Intradevar poti deschide cate conexiuni vrei la DB astfel, insa nu stii daca procedura ta de c# are dreptul de a se conecta prin TCP la Sql, si in foarte multe cazuri Administratorul restrictionaze accesul de acest gen.


    Nu am vazut BD la care Administratorul sa restrictioneze ORICE drept de a se conecta prin TCP la Sql ... Orice BD are si o interfata grafica, de obicei ...

    Ignat Andrei
    http://serviciipeweb.ro/iafblog
  •  07-10-2009, 1:49 PM 7384 in reply to 7383

    Re: Salut

    Da....


    dar am gasit alte idei:D


    1 sa creez SQL Joburile dinamic in functie de un paramentru care specifica nr lor si sa le dau drop cand se termina :D (ceea ce nu voi face :P)

    2 sa creez SQL Joburile dinainte de mana si sa le las inactive , dupa aia sa am o procedura care le lanseaza :D

    Numai ca nu stiu cum lansez un job de sql, prin script, si nu stiu daca atunci cand il lanseaza asteapta sa se termine...

    Exista ceva de genul

    Lunch job 1 go
    lunch job 2 go
    lunch job 3 go

    Adica sa intre , sa lanseze joburile sa sa iasa, Sa nu il intereseze daca sau terminat sau nu? :(

    Am cautat insa ori nu stiu cum sa caut , ori este o documentatie slaba pe aceste cazuri :(
  •  07-10-2009, 2:18 PM 7385 in reply to 7384

    Re: Salut

    sp_start_job
    http://technet.microsoft.com/en-us/library/ms186757.aspx
    Ignat Andrei
    http://serviciipeweb.ro/iafblog
  •  07-10-2009, 2:21 PM 7386 in reply to 7385

    Re: Salut

    Multam :D,


    tocmai gasisem si eu , atasasem un Sql Profiler peste DB si  am lansat un job sa vad ce face, si mi-a aparut comanda :D

    Almost cool,

    Sucks ca MultiThreading nu se poate face pe Sql :( si tre sa recurc la hack-ul cu joburile ... dar asta e.



    Multumesc mult ,
  •  07-10-2009, 9:57 PM 7387 in reply to 7386

    Re: Salut

    Ca tema de gandire - Service Broker permite lansare de mai multe instante a unei proceduri stocate pentru prelucrarea mesajelor dintr-o coada. Poate va da idei.

    Cristian Andrei Lefter, SQL Server MVP
    MCT, MCSA, MCDBA, MCAD, MCSD .NET,
    MCTS, MCITP - Database Administrator SQL Server 2005
    http://sqlserver.ro
  •  07-12-2009, 9:08 AM 7389 in reply to 7387

    Re: Salut

    de PLINQ(paralel LINQ) ce parere aveti?
    Secolul XXI ori va fi religios ori nu va fi deloc
View as RSS news feed in XML
Powered by Community Server (Commercial Edition), by Telligent Systems