Frage : Notwendigkeitshilfe für verursachen csv?

Ich möchte csv von den Ansammlungen Gegenständen verursachen? seachbean.java ist latestseach Fragendaten. Diese Daten möchten csv Akte using ein anderes servlet class.

Now herstellen, das ich zu den Werten führen der servlet Kategorie und das csv file.

I morgens verursachen muss Hilfe now.
schauend
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:
6:
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

allgemeine Suche des Gegenstandes [] (Schnur str1, Schnur str2, Schnur str3, Schnur str4, reihen Seitenindex) {auf
		Schnur returnValue = "";
		lastResults = Null;
		
		Versuch {
			Schnur Frage = getCasesQuery ();
			Schnur wo = buildWhere (str1, str2, str3);
			Schnur orderBy = buildOrderBy (str4);


			lastResults = DBUtil.getSQL (Frage + wo + orderBy);
			lastResults = mapCustomerDetails (lastResults);
			
			
		} Fang (Ausnahme e) {
			//returnValue = „warnend: “ + e.getMessage ();
			e.printStackTrace ();
			returnValue = Null;
		}

		RückhollastResults;
	}

createcsv.java (servlet Kategorie)
------------------------------

geschütztes leeres doGet (HttpServletRequest Antrag,
        HttpServletResponse Antwort, Gegenstand lastResults) wirft ServletException, IOException {
        
            //Object obj=AjaxBean.getLastSearchResultsAsCSV ();
            response.setContentType („Text/csv“);
            response.setHeader („Inhalt-Einteilung“, „Zubehör; filename=“ + Dateiname);
	    resultSetToCsv (rst, response.getWriter ());

        } Fang (Ausnahme e) {
            e.printStackTrace ();
        } schließlich {
        	 Versuch {
 				con.close ();
 			} Fang (SQLException e) {
 				// TODO Selbst--erzeugte Fangblock
 				e.printStackTrace ();
 			}
        }
}
        allgemeines statisches leeres resultSetToCsv (ResultSet rs, Verfasser heraus) {
        	Versuch {
        	    abschließendes Schnur ZEILENVORSCHUB = „\ r \ n“;
        	    ResultSetMetaData Metadaten = rs.getMetaData ();
        	    int numberOfColumns = metaData.getColumnCount ();

        	    // erhalten die Spaltennamen
        	    Schnur Sept = "";

        	    für (int-Spalte = 0; Spalte < numberOfColumns; column++) {
        		out.write (Sept);
        		out.write (metaData.getColumnLabel (Spalte + 1));
        		Sept = „,“;
        	    }

        	    out.write (ZEILENVORSCHUB);

        	    // erhalten alle Reihen.
        	    während (rs.next ()) {
        		Sept = "";

        		für (int I = 1; <= I numberOfColumns; i++) {
        		    out.write (Sept);
        		    out.write ("" +rs.getObject (i));
        		    Sept = „,“;
        		}

        		out.write (ZEILENVORSCHUB);
        	    }
        	} Fang (Ausnahme e) {
        	    e.printStackTrace ();
        	}
            }

Antwort : Notwendigkeitshilfe für verursachen csv?

Ich denke, dass Sie vor selbst erhalten, wenn Sie dieses annehmen, sind alles, das auf abstrakten Fragenplänen bezogen wird, dort sind kein Grund (dennoch) sie sogar zu denken werden impliziert.

Sybase kompiliert Verfahren (und alle Codegegenstände) in Fragenpläne im Verfahrenspufferspeicher. Dieses ist gerade wie Datenpufferspeicher, dadurch, dass es eine Am meisten-Neu-Verwendete am wenigsten gebrauchte Kette ist. Alte Seiten erhalten schließlich aus Pufferspeicher heraus gealtert, wenn andere Sachen in ihn geladen werden müssen. So konnte es total sein, dass über Nacht verarbeitendes anderes die Fragenpläne aus Verfahrenspufferspeicher heraus altert und die erste Durchführung des Tages ihn neu lädt.

Zusammenfassung: Gerade weil sie im Verfahrenspufferspeicher einmal bedeutet nicht war, dass es noch dort im Augenblick ist.

Sybase Verfahrenspufferspeicher ist nicht einspringend. Dies heißt, dass ein einzelner Fragenplan nicht zwischen Prozessen geteilt werden kann. Wenn zwei Prozesse das gleiche Verfahren laufen lassen, erhält jeder ihren eigenen Fragenplan im Pufferspeicher. Wenn es nur eins z.Z. im Pufferspeicher (und in ihm wird verwendet), gibt, muss ein Neues kompiliert werden und geladen werden.

Zusammenfassung: Gerade weil sie im Verfahrenspufferspeicher im Augenblick bedeutet nicht ist, dass Sie ihn benutzen können.

Selbst wenn es einen Ersatz (unbenutzten) Fragenplan im Verfahrenspufferspeicher gibt, konnten Sie ihn nicht irgendwie benutzen. Wenn das Verfahren mit „mit verursacht wurde, recompile“ Wahl, es recompiled, jedes Mal wenn sie durchgeführt wird. Oder sie konnte mit „mit durchgeführt worden sein recompile“, die den gleichen Effekt hat. Oder jemand konnte „sp_recompile“ auf einer Tabelle laufen gelassen haben, die das Verfahren (allgemein nach irgendeiner Form „des Updatestatistik“ Befehls) benutzt, das den gleichen Effekt hat. Oder sogar ohne irgendwelche jener Ursachen, gibt es andere mögliche Ursachen für das Erfordern eines Recompile eines Fragenplanes, wie erschöpfende Metadatenpufferspeicherbeschreiber, die alle Fragenpläne für einen Gegenstand markieren, wie unzulässig.

Zusammenfassung: Wirklich selbst wenn der Fragenplan im Verfahrenspufferspeicher im Augenblick ist, und niemand anders benutzt ihn, bedeutet nicht, dass Sie (definitiv) ihn benutzen können.

O.K., so möglicherweise, dass erste Durchführung des Tages aus welchem Grund auch immer einen Recompile eines Fragenplanes verursacht. Würde das wirklich solch ein hinsichtlich Zunahme 3m <10s to="">unterscheiden? Ja könnte es total, wenn der SQL im Verfahren schwierig ist. Wenn es eine Verbindung zwischen 20 Tabellen gibt, würde ich Optimierung erwarten, um sogar länger zu dauern. Sie sagen nicht, welche Version von ASE Sie verwenden - in ASE 15+ gibt es Bedienerbegrenzungen auf, wie lang etwas in der Optimierung genau aufwendet, um zu versuchen, diese Art der Ausgabe zu vermeiden. Ich schätze, dass Sie eine frühere Version laufen lassen, in diesem Fall Optimierung nimmt, solange sie nimmt und es keine Weisen des Einstellens sie früh einmal angefangen gibt.

Zusammenfassung: 10 Sekunden, die heraus zu 180 Sekunden durchbrennen, ist nicht notwendigerweise dieses Extrem, wenn es ein Verfahren recompile das Vorkommnis gibt.


Jetzt ist das reale Problem hier, dass die meisten Weisen, die wir wenn überhaupt von der oben genannten Macht feststellen müssen, erfordern im Allgemeinen sa_role geschehen. Wenn Sie nicht z.Z. haben, dass Privileg dort nicht sein wird viel, können Sie tun, um dieses nachzuforschen. Ich sage, dass es viele Sachen gibt, die wir würden betrachten wollen, bevor es angemessen war, vermutlich defekte abstrakte Fragenpläne anzufangen war ein Faktor.

Um Ihre spezifische Frage zu beantworten, gibt es in der Tat einige sp_configure Parameter die zu einigen dieser möglichen Ursachen relevant sein konnten, aber ohne sa_role sind Sie nicht die Diagnosen zur Überprüfung laufen zu lassen, und Sie sind nicht sie irgendwie zu ändern.

Mich Ihnen eine neue Frage stellen lassen - macht sie zu jemand aus, wenn die erste Durchführung dieses Verfahrens an einem Tag 3 Minuten nimmt?
Weitere Lösungen  
 
programming4us programming4us