Pytanie : Potrzeba pomoc dla tworzyć csv?

I chcieć csv od kolekcja przedmiot? seachbean.java być latestseach zapytanie dane. Ten dane chcieć csv kartoteka using inny servlet class.

Now i musieć wartość servlet klasa i csv file.

I am przyglądający pomoc now.
(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

jawny Przedmiot [] rewizja (Smyczkowy str1, Smyczkowy str2, Smyczkowy str3, Smyczkowy str4, Smyczkowy pageIndex) {
		Smyczkowy returnValue = "";
		lastResults = null;
		
		próba {
			Smyczkowy zapytanie = getCasesQuery ();
			Zawiązywać dokąd = buildWhere (str1, str2, str3);
			Zawiązywać orderBy = buildOrderBy (str4);


			lastResults = DBUtil.getSQL (zapytanie + dokąd + orderBy);
			lastResults = mapCustomerDetails (lastResults);
			
			
		} chwyt (Wyjątek e) {
			//returnValue = "Ostrzegać: " + e.getMessage ();
			e.printStackTrace ();
			returnValue = null;
		}

		powrotny lastResults;
	}

createcsv.java (servlet klasa)
------------------------------

ochraniać kawitacyjny doGet (HttpServletRequest prośba,
        HttpServletResponse odpowiedź, Przedmiot lastResults) rzucać ServletException, IOException {
        
            //Object obj=AjaxBean.getLastSearchResultsAsCSV ();
            response.setContentType ("tekst/csv");
            response.setHeader ("Zadawalać-Usposobienie", "doczepianie; filename=" + filename);
	    resultSetToCsv (rst, response.getWriter ());

        } chwyt (Wyjątek e) {
            e.printStackTrace ();
        } w końcu {
        	 próba {
 				con.close ();
 			} chwyt (SQLException e) {
 				// TODO Samochód-Wytwarzać chwyt blok
 				e.printStackTrace ();
 			}
        }
}
        jawny statyczny kawitacyjny resultSetToCsv (ResultSet rs, Pisarz kawitacyjny) {
        	próba {
        	    finał Smyczkowy LINEFEED = "\ r \ n";
        	    ResultSetMetaData metaData = rs.getMetaData ();
        	    int numberOfColumns = metaData.getColumnCount ();

        	    // Dostawać the szpaltowy imię
        	    Smyczkowy sep = "";

        	    dla (int kolumna = (0); kolumna < numberOfColumns; column++) {
        		out.write (sep);
        		out.write (metaData.getColumnLabel (kolumna + 1));
        		sep = ",";
        	    }

        	    out.write (LINEFEED);

        	    // Dostawać wszystkie rząd.
        	    podczas gdy (rs.next ()) {
        		sep = "";

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

        		out.write (LINEFEED);
        	    }
        	} chwyt (Wyjątek e) {
        	    e.printStackTrace ();
        	}
            }

Odpowiedź : Potrzeba pomoc dla tworzyć csv?

I myśleć ty dostawać naprzeciw w myśleć być myśleć odnosić sie abstract zapytanie plan, tam  być żadny powód (mimo to) nawet wplątywać.

Sybase kompilować procedura (i tajna kryjówka kodować przedmiot) w zapytanie plan w procedura tajna kryjówka. Ono być właśnie jak dane tajna kryjówka, że ono być Najwięcej-Ostatnio-Używać Używać łańcuch. Stary strona ostatecznie dostawać starzeć się z tajna kryjówka jeżeli inny rzecz potrzebować ładować w ono. W Ten Sposób ono kompletnie można że nocny inny przerób starzeć się the zapytanie plan z procedura tajna kryjówka i the pierwszy egzekucja the dzień przeładowywać ono.

Streszczenie: Właśnie ponieważ ono być w procedura tajna kryjówka właśnie znaczyć ono wciąż być tam  teraz.

Sybase procedura tajna kryjówka być być. Proces znaczyć pojedynczy zapytanie plan móc dzielić między proces. Jeżeli dwa proces biegać the ten sam procedura, dwa dostawać ich swój zapytanie plan w tajna kryjówka. Jeżeli tam  być tylko jeden obecnie w tajna kryjówka (i ono używać), nowy musieć kompilować i.

Streszczenie: Właśnie ponieważ ono być w procedura tajna kryjówka teraz znaczyć ty móc ono.

Nawet jeśli tam  być dodatkowy (nieużywany) zapytanie plan w procedura tajna kryjówka, ty można ono jakkolwiek. Jeżeli the procedura tworzyć z the "z recompile" opcja, ono recompiled każdy czas ono wykonywać. Lub ono można wykonywać z "z recompile" che mieć the ten sam skutek. Lub skutek można "sp_recompile" na stół który the procedura używać (powszechnie po tym jak niektóre forma "aktualizacja statystyki" rozkaz), che mieć the ten sam skutek. Albo nawet bez przedmiot tamte przyczyna, tam  być inny możliwa przyczyna dla recompile zapytanie plan, jak znojny metadata tajna kryjówka deskryptor, che zaznaczać wszystkie zapytanie plan dla przedmiot nieważny.

Streszczenie: Naprawdę, nawet jeśli the zapytanie plan być w procedura tajna kryjówka teraz, i tajna kryjówka inny używać ono, znaczyć ty móc (zdecydowanie) ono.

Ok, w ten sposób być może że pierwszy egzekucja the dzień, dla pierwszy powód, powodować recompile zapytanie plan. Wzrost naprawdę zrobić taki różnica jeśli chodzi wzrost <10s to="">3m? Tak, ono kompletnie móc, jeżeli the SQL w the procedura komplikować. Jeżeli tam  być łączyć między 20 stół I oczekiwać optimisation nawet długi. Ty mówić jaki wersja ASE ty używać - w ASE 15+ tam  być serwer ograniczenie na jak długo 15+ wydawać w optimisation dokładnie ten jakby zagadnienie. I być odgadywanie ty biegać poprzednia wersja, w che skrzynka optimisation brać dopóki ono brać i tam  być żadny sposób ono wcześnie wcześnie zaczynać.

Streszczenie: 10 sekunda zdarzać się 180 sekunda być koniecznie ten ekstremum, jeżeli tam  być procedura recompile.


Teraz, the prawdziwy problem tutaj być że prawdziwy problem the sposób my musieć jeśli wogóle the jeśli wogóle moc zdarzać się ogólny wymagać sa_role. Jeżeli ty obecnie mieć ten przywilej tam  iść dużo ty móc iść. I mówić tam  być wiele rzecz my chcieć zanim ono być rozsądny podejrzany abstrakcjonistyczny zapytanie plan być czynnik.

Twój odmianowy pytanie, tam  być naprawdę niektóre sp_configure parametr który móc istotny parametr te możliwa przyczyna, ale bez sa_role ty być sprawnie the diagnostyk czek, i ty być sprawnie jakkolwiek.

Pozwalać ty nowy pytanie - ono liczyć się pozwalać jeżeli the pierwszy egzekucja ten procedura w dzień brać 3 minuta?
Inne rozwiązania  
 
programming4us programming4us