Domanda

Ho sempre pensato che un compilatore SQL si sarebbe rotto, ma apparentemente il nesing può essere quasi infinito. Questo codice deve essere immediatamente cestinato o c'è qualche barlume di speranza che qualcosa di simile possa funzionare?

Questa query non mi appartiene davvero, quindi non posso pubblicarla ... Tuttavia facciamo solo finta che sia questo :

[SELECT /*+ NOPARALLEL bypass_recursive_check */ 
SP_ALIAS_190, 
((CASE SP_ALIAS_191
WHEN 1
THEN 'PROVIDER::ALL_PROV::'
WHEN 0]
È stato utile?

Soluzione

Se la query è generata da uno strumento (o dal codice), può essere relativamente semplice da mantenere (nel senso che il codice di generazione della query può in effetti essere ben scritto e gestibile)

Altri suggerimenti

Chiaramente, non hai mai visto l'SQL che esce da Sharepoint DAL.

Mi sono imbattuto in un problema simile a questo recentemente e ho preso una decisione considerando un paio di cose:

  • Quanto tempo ci vorrà per mantenere rispetto alla riscrittura?
  • Quanto è critico questo? Potrebbe esserci molta logica che potrebbe essere difficile da svelare e il valore nel fatto che & Quot; funziona & Quot; supera il valore di una riscrittura immediata.

E, naturalmente, c'era la decisione politica che il management doveva prendere riguardo al rischio di spiegare perché qualcosa che era stato creato di recente avrebbe dovuto essere riscritto.

Alla fine (per me), trova + sostituisci era mio amico.

Rifattattilo usando WITH istruzione. Aggiungi molti, molti e molti commenti.

Se lo spezzi in pezzi che possono essere gestiti, hai molte più possibilità.

Se contiene un sacco di nidificazione direi di no.

Come qualsiasi codice, indipendentemente dalla lingua, dovresti solo riscriverlo perché puoi renderlo più efficiente o più facile da capire.

In base alla mia esperienza, sono stato in grado di ridurre SQL 4 o 5 volte scritto in modo errato per molte volte e per le sue prestazioni perché l'auther originale non ne aveva idea.

Se pensi che sia un male, dovresti vedere il video di esempio di Industrial Logic sugli odori di codice: Debito tecnico . Sicuramente non generato automaticamente.

È possibile mantenere una funzione di 43 pagine, diciamo, in C #? La risposta è ovvia;). Non riesco proprio a immaginarlo. Se fossi in te lo spezzerei in parti più piccole.

Due cose:

  • Solo le macchine dovranno mai leggere questo SQL?
  • Sei bloccato con lo schema sottostante?

Se hai una query di 43 pagine e hai risposto sì alle prime due domande, benvenuto nello sviluppo di SharePoint

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top