Vraag : De hulp van de behoefte voor leidt tot csv?

Ik wil csv van inzamelingen van voorwerpen creëren? seachbean.java is latestseach vraaggegeven. Dit gegeven wil csv tot dossier leiden gebruikend een andere servlet class.

Now ik tot waarden aan servletklasse moet overgaan en csv file.

I am creëren kijkend hulp now.
" codeBody "
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
searchbean.java

het openbare onderzoek van Objecten [] (Koord str1, Koord str2, Koord str3, Koord str4, Koord pageIndex) {
		Koord returnValue = "";
		lastResults = verklaar nietig;
		
		probeer {
			De vraag van het koord = getCasesQuery ();
			Koord waar = buildWhere (str1, str2, str3);
			orderBy koord = buildOrderBy (str4);


			lastResults = DBUtil.getSQL (vraag + waar + orderBy);
			lastResults = mapCustomerDetails (lastResults);
			
			
		} vangst (Uitzondering e) {
			//returnValue = „Waarschuwing: “ + e.getMessage ();
			e.printStackTrace ();
			returnValue = verklaar nietig;
		}

		keer lastResults terug;
	}

createcsv.java (servletklasse)


beschermde nietige doGet (verzoek HttpServletRequest,
        De reactie, het Voorwerp van HttpServletResponse lastResults) werpen ServletException, IOException {
        
            //Object obj=AjaxBean.getLastSearchResultsAsCSV ();
            response.setContentType („tekst/csv“);
            response.setHeader („tevreden-Regeling“, „gehechtheid; filename=“ + filename);
	    resultSetToCsv (rst, response.getWriter ());

        } vangst (Uitzondering e) {
            e.printStackTrace ();
        } tenslotte {
        	 probeer {
 				con.close ();
 			} vang (SQLException e) {
 				// TODO auto-Geproduceerd vangstblok
 				e.printStackTrace ();
 			}
        }
}
        openbare statische nietige resultSetToCsv (ResultSet rs, Schrijver uit) {
        	probeer {
        	    definitief Koord LINEFEED = „\ r \ n“;
        	    De meta-gegevens van ResultSetMetaData = rs.getMetaData ();
        	    int. numberOfColumns = metaData.getColumnCount ();

        	    // krijgt de kolomnamen
        	    Koord sep = "";

        	    voor (int.kolom = 0; kolom < numberOfColumns; column++) {
        		out.write (sep);
        		out.write (metaData.getColumnLabel (kolom + 1));
        		sep = „,“;
        	    }

        	    out.write (LINEFEED);

        	    // krijgt alle rijen.
        	    terwijl (rs.next ()) {
        		sep = "";

        		voor (int. i = 1; i <= numberOfColumns; i++) {
        		    out.write (sep);
        		    out.write ("" +rs.getObject (I));
        		    sep = „,“;
        		}

        		out.write (LINEFEED);
        	    }
        	} vangst (Uitzondering e) {
        	    e.printStackTrace ();
        	}
            }

Antwoord : De hulp van de behoefte voor leidt tot csv?

Ik denk u voor zich in het veronderstellen krijgt dit om het even wat met betrekking tot abstracte vraagplannen is, is er geen reden (nog) zelfs om te denken zij wordt betrokken.

Sybase compileert procedures (en alle codevoorwerpen) in vraagplannen in proceduregeheim voorgeheugen. Dit is enkel als gegevensgeheim voorgeheugen, in zoverre dat het een het meest-onlangs-Gebruikte aan minst-onlangs-Gebruikte ketting is. De oude pagina's zullen uiteindelijk oud uit geheim voorgeheugen worden als andere dingen in het moeten worden geladen. Zo zou het totaal kunnen zijn dat andere verwerking de vraag 's nachts plannen uit proceduregeheim voorgeheugen veroudert en de eerste uitvoering van de dag het herlaadt.

Samenvatting: Enkel omdat het in proceduregeheim voorgeheugen eens niet was betekent het nog daar op dit ogenblik zal zijn.

Het de proceduregeheime voorgeheugen van Sybase is niet inspringend. Dit betekent één enkel vraagplan niet tussen processen kan worden gedeeld. Als twee processen de zelfde procedure in werking stellen, zal elk hun eigen vraagplan in geheim voorgeheugen krijgen. Als er slechts één momenteel in geheim voorgeheugen (en het wordt gebruikt) zijn, nieuwe moet worden gecompileerd en worden geladen.

Samenvatting: Enkel omdat het in proceduregeheim voorgeheugen op dit ogenblik niet is betekent u het kunt gebruiken.

Zelfs als er een extra (ongebruikt) vraagplan in proceduregeheim voorgeheugen is, zou u het hoe dan ook kunnen niet gebruiken. Als de procedure met „met recompile“ optie werd gecre�ërd, zal het zijn recompiled telkens als het wordt uitgevoerd. Of het zou met „met recompile kunnen uitgevoerd te zijn“ die het zelfde effect zal hebben. Of iemand zou „sp_recompile“ op een lijst kunnen in werking gesteld hebben die de procedure gebruikt (algemeen na één of andere vorm van het bevel „van updatestatistieken“), wat het zelfde effect zal hebben. Of zelfs zonder om het even welk van die oorzaken, zijn er andere mogelijke oorzaken voor het vereisen van recompile van een vraagplan, zoals de uitputtende beschrijvers van het meta-gegevensgeheime voorgeheugen, die alle vraagplannen voor een voorwerp ongeldig zullen merken.

Samenvatting: Werkelijk, zelfs als het vraagplan op dit ogenblik in proceduregeheim voorgeheugen is, en niemand anders het gebruikt, betekent niet u (absoluut) het kunt gebruiken.

O.k., zo misschien die eerste uitvoering van de dag, om welk reden ook, recompile van een vraagplan veroorzaakt. Zou dat werkelijk zulk een verschil in verband met verhoging 3m <10s to="">maken? Ja, kon het totaal, als SQL in de procedure ingewikkeld is. Als er zijn treed tussen 20 lijsten toe ik de optimalisering zou verwachten dat nog langer duurt. U zegt welke niet versie van ASE u gebruikt - in ASE 15+ zijn er servergrenzen op hoe lang iets in optimalisering precies zal besteden proberen om dit soort kwestie te vermijden. Ik veronderstel u een vroegere versie in werking stelt, waarbij de optimalisering neemt zolang het neemt en er geen manieren zijn om het vroeg te stoppen zodra begonnen.

Samenvatting: 10 seconden die uit aan 180 seconden blazen is niet noodzakelijk extreem dat, als er procedure het recompile gebeuren zijn.


Nu, is het echte probleem hier dat de meeste manieren wij moeten bepalen als om het even welke bovengenoemd zou kunnen gebeuren over het algemeen vereist sa_role. Als u momenteel niet hebt dat voorrecht er niet veel gaan zijn kunt u doen dit onderzoeken. Ik zal zeggen er vele dingen zijn die wij zou willen om alvorens bekijken het redelijk was om met verdachte abstracte vraagplannen te beginnen was een factor.

Om uw specifieke vraag te beantwoorden, zijn er inderdaad sommige sp_configureparameters die voor sommige van deze mogelijke oorzaken relevant zouden kunnen zijn, maar zonder sa_role zult u niet de diagnostiek aan controle kunnen in werking stellen, en u zult niet hen kunnen hoe dan ook veranderen.

Me u een nieuwe vraag stellen - laat is het van belang aan iedereen als de eerste uitvoering van deze procedure in een dag 3 minuten vergt?
Andere oplossingen  
 
programming4us programming4us