Torna indietro   Hardware Upgrade Forum > Software > Programmazione

I nuovi schermi QD-OLED di quinta generazione di MSI, per i gamers
I nuovi schermi QD-OLED di quinta generazione di MSI, per i gamers
MSI continua ad investire nel proporre schermi pensati per rispondere alle esigenze dei videogiocatori, utilizzando la quinta generazione di tecnologia QD-OLED sviluppata da Samsung. Il modello MPG 341CQR QD-OLED X36 è lpultima novità al debutto in concomitanza con il CES 2026, uno schermo curvo di ampia risoluzione pensato per i videogiocatori più esigenti
Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
vivo X300 Pro rappresenta un'evoluzione misurata della serie fotografica del produttore cinese, con un sistema di fotocamere migliorato, chipset Dimensity 9500 di ultima generazione e l'arrivo dell'interfaccia OriginOS 6 anche sui modelli internazionali. La scelta di limitare la batteria a 5.440mAh nel mercato europeo, rispetto ai 6.510mAh disponibili altrove, fa storcere un po' il naso
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2 è la nuova handheld PC gaming con processore AMD Ryzen Z2 Extreme (8 core Zen 5/5c, GPU RDNA 3.5 16 CU) e schermo OLED 8,8" 1920x1200 144Hz. È dotata anche di controller rimovibili TrueStrike con joystick Hall effect e una batteria da 74Wh. Rispetto al dispositivo che l'ha preceduta, migliora ergonomia e prestazioni a basse risoluzioni, ma pesa 920g e costa 1.299€ nella configurazione con 32GB RAM/1TB SSD e Z2 Extreme
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 10-10-2006, 11:27   #1
Nightmare
Senior Member
 
L'Avatar di Nightmare
 
Iscritto dal: May 2002
Città: Roma
Messaggi: 587
[ORACLE] 2 cursori o 1 union

Ho un dubbio abbastanza semplice e che non pregiudica l'esito dei risultati ottenuti ma vorrei sapere secondo voi quale è il modo migliore per affrontare il problema.

Ho 2 tabelle con campi non completamente uguali, ma questo non mi interessa, i campi che mi servono sono identici.

Devo leggere tutte e 2 le tabelle nello stesso modo.
Secondo voi è meglio creare 2 cursori dinamici, dichiarandoli 2 volte, aprendoli 2 volte e fetchando prima uno e poi l'altro e poi richiuderli ambedue o creare un unico cursore che sia la join tra le 2?
__________________
AMD Phenom II 965 Black Edition | Gigabyte 990XA-UD3 | Corsair 8GB DDR3 1666 | Intel SSD 320 160GB + WD Caviar Green 3TB | AsusGeForce GTX770 DC II| CoolerMaster 690 II | Philips 231e1sb
Nightmare è offline   Rispondi citando il messaggio o parte di esso
Old 10-10-2006, 14:01   #2
trallallero
Senior Member
 
L'Avatar di trallallero
 
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
ti interessano piú le prestazioni o la leggibilitá ?
comunque mi sembra piú una "union"che una join
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z Mb - Win Eight SP (1 > yours) 16 Valve
trallallero è offline   Rispondi citando il messaggio o parte di esso
Old 10-10-2006, 14:17   #3
shinya
Senior Member
 
L'Avatar di shinya
 
Iscritto dal: Jul 2005
Città: Bologna
Messaggi: 1130
Non so se ho capito bene il tuo problema, ma da quello che ho capito credo ti convenga fare una cosa così (pseudo pl/sql):
Codice:
begin
  for record in ( select t1.x, t1.y, t1.z
                        from tabella1 t1
                      union
                      select t2.x, t2.y, t2.z
                        from tabella2 t2 )
  loop
   ...fai quello che vuoi con il record....
  end loop;
end;
shinya è offline   Rispondi citando il messaggio o parte di esso
Old 10-10-2006, 14:22   #4
Nightmare
Senior Member
 
L'Avatar di Nightmare
 
Iscritto dal: May 2002
Città: Roma
Messaggi: 587
si scusami ho sbagliato a scrivere, è una union, nel titolo c'è scritto union cmq

mi interessano le prestazioni.
la select finale è molto massiccia e ricca di condizioni a seconda di cosa l'utente vuole visualizzare (query dinamica) e non so assolutamente quanto una union possa incidere rispetto alla gestione di 2 cursori anziche uno solo piu grande
__________________
AMD Phenom II 965 Black Edition | Gigabyte 990XA-UD3 | Corsair 8GB DDR3 1666 | Intel SSD 320 160GB + WD Caviar Green 3TB | AsusGeForce GTX770 DC II| CoolerMaster 690 II | Philips 231e1sb
Nightmare è offline   Rispondi citando il messaggio o parte di esso
Old 10-10-2006, 14:29   #5
trallallero
Senior Member
 
L'Avatar di trallallero
 
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
Quote:
Originariamente inviato da Nightmare
si scusami ho sbagliato a scrivere, è una union, nel titolo c'è scritto union cmq

mi interessano le prestazioni.
la select finale è molto massiccia e ricca di condizioni a seconda di cosa l'utente vuole visualizzare (query dinamica) e non so assolutamente quanto una union possa incidere rispetto alla gestione di 2 cursori anziche uno solo piu grande
é vero c'é nel titolo

allora va bene quello che ha scritto shinya se usi pl/sql
io dichiaro il cursore poi faccio
Codice:
for rec in cursore ...
ma immagino sia giusto come l'ha scritto shinya ... anzi, carino, rapido
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z Mb - Win Eight SP (1 > yours) 16 Valve
trallallero è offline   Rispondi citando il messaggio o parte di esso
Old 10-10-2006, 14:38   #6
Nightmare
Senior Member
 
L'Avatar di Nightmare
 
Iscritto dal: May 2002
Città: Roma
Messaggi: 587
Devo farlo in cobol tramite una "prepare nome_cursore from stringa_sql" di sql embedded ma non è un problema questo, mi interessa la logica cioè, tu is meil che uan? o uan is meil che tu?

io credo che una union che faccia tutto, sia migliore sia prestazionalmente che in leggibilità
e a quanto pare lo ritenete anche voi
volevo sapere voi cosa ne penzavate
tnx
__________________
AMD Phenom II 965 Black Edition | Gigabyte 990XA-UD3 | Corsair 8GB DDR3 1666 | Intel SSD 320 160GB + WD Caviar Green 3TB | AsusGeForce GTX770 DC II| CoolerMaster 690 II | Philips 231e1sb
Nightmare è offline   Rispondi citando il messaggio o parte di esso
Old 10-10-2006, 14:50   #7
trallallero
Senior Member
 
L'Avatar di trallallero
 
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
Quote:
Originariamente inviato da Nightmare
Devo farlo in cobol tramite una "prepare nome_cursore from stringa_sql" di sql embedded ma non è un problema questo, mi interessa la logica cioè, tu is meil che uan? o uan is meil che tu?

io credo che una union che faccia tutto, sia migliore sia prestazionalmente che in leggibilità
e a quanto pare lo ritenete anche voi
volevo sapere voi cosa ne penzavate
tnx
non conosco il cobol, ma veramente per niente, peró ti parlo dell'ambiente oracle/unix:
fare 2 query (diciamo semplici) una dopo l'altra, é indubbiamente piú lento che unirle con una union.
Posso prevedere che ci metta il doppio del tempo, perché aprire 2 istanze o 1 ad oracle non cambia molto quindi puó scandire 2 tabelle contemporaneamente senza cali di resa.
Io alla Vodafone (tramite l'HP) ho risolto un problema che avevano quando fetchavano la tabella clienti e puntualmente dava l'errore "rollback segment too short ...".
Il prog dell'HP memorizzava il rowid del record e continuava da li dopo l'errore
Io l'ho cambiato prendendo il MinId e il MaxId (ottenendo il numero di records), dividendo il tutto in piú pacchetti che venivano fetchati contemporaneamente. E i tempi erano quasi gli stessi col vantaggio dell'assenza di errori

Poi se cominci ad avere queries con join a destra e a manca allora il discorso cambia ...
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z Mb - Win Eight SP (1 > yours) 16 Valve
trallallero è offline   Rispondi citando il messaggio o parte di esso
Old 10-10-2006, 15:44   #8
Nightmare
Senior Member
 
L'Avatar di Nightmare
 
Iscritto dal: May 2002
Città: Roma
Messaggi: 587
posso farti l'esempio di questa select con la union

Codice:
SELECT DISTINCT(SG02_MATR), 
	   NVL(SGUNION_COGNOME,' '), 
	   NVL(SGUNION_NOME,' '), 
	   NVL(SGUNION_PROFILO,' '), 
	   NVL(SGX08_DESCRIZIONE,' '), 
	   NVL(SGX03_DESCRIZIONE,' '), 
	   SG03_ENTE_CORSO, 
	   NVL(SGX02_DESCRIZIONE,' '), 
	   NVL(SGX02_CODICE,'0'), 
	   NVL(SG03_TIPO,'0'), 
	   TO_CHAR(SG02_DATA_INIZIO,'DD/MM/YYYY'), 
	   TO_CHAR(SG03_DATA_FINE,'DD/MM/YYYY') , 
	   NVL(SGUNION_ENTE,' '), 
	   NVL(SGUNION_DIREZ_CENTRALE,'0'), 
	   NVL(SG02_ORE,'0'), 
	   NVL(SG02_GIORNI,'0'), 
	   NVL(SG02_PROV_ENTE_CORSO,' '), 
	   NVL(SG02_CATEGORIA,'0'), 
	   NVL(SG02_PROFILO_CORSO,' '), 
	   NVL(SG02_ENTE_APPAR,' '), 
	   NVL(SG02_DIREZ_APPAR,'0'), 
	   NVL(SG02_ESAME,' '), 
	   NVL(SG02_ESITO,' '), 
	   NVL(SG02_VOTAZIONE,' '), 
	   NVL(SG02_NOTE,' '), 
	   SG02_PROGRESSIVO, 
	   SGUNION_TIPODIP
FROM (SELECT sg01_matr AS sgunion_matr, 
	 		 sg01_cognome AS sgunion_cognome, 
			 sg01_nome AS sgunion_nome, 
			 sg01_profilo AS sgunion_profilo, 
			 sg01_ente AS sgunion_ente, 
			 sg01_direz_centrale AS sgunion_direz_centrale, 
			 'Dipendente AAMS' AS sgunion_tipodip
	  FROM sg01_dipens_giur 
	  WHERE sg01_matr NOT IN (SELECT sg11_matr 
	  				  	  	  FROM sg11_pensione) 
	  UNION 
	  SELECT sg06_matr AS sgunion_matr, 
	  		 sg06_cognome AS sgunion_cognome, 
			 sg06_nome AS sgunion_nome, 
			 sg06_pos_econ AS sgunion_profilo, 
			 sg06_ente AS sgunion_ente, 
			 sg06_direz_centrale AS sgunion_direz_centrale, 
			 'Dipendente Distaccato' AS sgunion_tipodip
	  FROM sg06_dist_com 
	  WHERE to_date(sg06_data_fine_dist,'DD-MM-YYYY') > TO_DATE(SYSDATE,'DD-MM-YYYY')), 
	 SG02_CORSI_FRUITI, 
	 SG03_CORSI_PIANIF, 
	 SGX02_TITOLO_CORSO, 
	 SGX03_AREA_TEMATICA, 
	 SGX08_POSIZIONE 
WHERE SG02_MATR = SGUNION_MATR AND 
	  SG02_TITOLO = SG03_TITOLO AND 
	  TO_CHAR(SG02_DATA_INIZIO,'YYYY/MM/DD') BETWEEN TO_CHAR(SG03_DATA_INIZIO,'YYYY/MM/DD') AND TO_CHAR(SG03_DATA_FINE,'YYYY/MM/DD') AND 
	  SG02_TITOLO = SGX02_CODICE(+) AND 
	  SG03_AREA = SGX03_CODICE(+) AND 
	  SGUNION_PROFILO = SGX08_CODICE(+) AND 
	  SG02_MATR = '3285425' AND 
	  TO_CHAR(SG02_DATA_INIZIO,'DD/MM/YYYY') = '12/05/2003' AND 
	  SG03_AREA = 07 AND 
	  SG02_TITOLO = 00038 AND 
	  SG03_ENTE_CORSO = 03
alla fine ho optato per la union e senza avrei dovuto fare 2 select distinte con le medesime condizioni per poter trovare l'impiegato con la matricola o le condizioni che preferisco
__________________
AMD Phenom II 965 Black Edition | Gigabyte 990XA-UD3 | Corsair 8GB DDR3 1666 | Intel SSD 320 160GB + WD Caviar Green 3TB | AsusGeForce GTX770 DC II| CoolerMaster 690 II | Philips 231e1sb
Nightmare è offline   Rispondi citando il messaggio o parte di esso
Old 10-10-2006, 15:49   #9
trallallero
Senior Member
 
L'Avatar di trallallero
 
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
hai fatto bene secondo me. Non sembrano query costose quindi raddoppi le prestazioni e la leggibilitá forse addirittura ne guadagna perché si capisce che ti servono i dati contemporaneamente
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z Mb - Win Eight SP (1 > yours) 16 Valve
trallallero è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


I nuovi schermi QD-OLED di quinta generazione di MSI, per i gamers I nuovi schermi QD-OLED di quinta generazione di...
Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria Recensione vivo X300 Pro: è ancora lui il...
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'...
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti AWS re:Invent 2025: inizia l'era dell'AI-as-a-Se...
Cos'è la bolla dell'IA e perché se ne parla Cos'è la bolla dell'IA e perché se...
Volkswagen mostra i nuovi interni: pi&ug...
Sony WH-1000XM5 al minimo storico: le cu...
Lo smartphone da comprare oggi è ...
2 super caricatori multipli da 600W o 22...
La Russia prosegue lo sviluppo di reatto...
Roscosmos: da quest'anno ci potrà...
Amazon, tutte le offerte e qualche novit...
Sedie gaming in offerta su Amazon: desig...
Scope elettriche in offerta Amazon: mode...
Ricarica EV fino a 22 kW spendendo poco:...
Costa solo 139€ ma fa tutto: Lefant M330...
Amazon Haul spinge sul risparmio: sconti...
Oral-B iO in offerta su Amazon: maxi sco...
I cosmonauti avrebbero riparato tutte le...
Artemis II: la NASA conferma il lancio d...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 09:10.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v