Font
[thread]3705[/thread]

DBIx::Class was passiert da genau...?: Effektive SQL Abfragen



<< >> 2 entries, 1 page
pfuschi
 2006-08-02 02:21
#34569 #34569
User since
2004-03-31
198 articles
BenutzerIn
[default_avatar]
Servus,
also ich arbeite jetzt schon seit einiger Zeit mit DBIx::Class und bin da eigentlich super zufrieden damit weil es einfach super funktioniert.
Jetzt hab ich da aber ein paar Fragen.

Ich möchte auf eine Tabelle ein select machen und zwar auf alle records, dabei interessieren mich aber nur 2 oder 3 Spalten.

Derzeit realisiere ich das z.B. beim erzeugen einer Kundenliste so:
Code (perl): (dl )
1
2
3
4
    my $kundenrs = $db->resultset('Kunde');
    while (my $test = $kundenrs->next) {
      print $test->name .', '. $test->vorname. "\n";
    }


Es heißt in der DBIx::Class Doku
Quote
If you are returning a ResultSet, the query won't execute until you use a method that wants to access the data. (Such as "next", or "first")

d.h. in meinem Fall stelle ich mir das so vor dass in wirklichkeit ein
Code: (dl )
SELECT * FROM kunde;

gemacht wird. Da die Tabelle aber zig Spalten haben kann und doch etliche Datensätze wäre es ja Verschwendung wenn mich nur vorname und name interessieren, dass dann tatsächlich alle Spalten geholt werden.
Ich habe irgendwie keine Schwierigkeiten komplexere Abragen zu machen, habe aber seither nicht so sehr auf die Effektivität geachtet

Für ein paar Tipps wäre ich sehr dankbar

greetz & fetten Segen
Manu
PCE - Editor für Perl in Perl
Bookzilla.de - Mit jedem Kauf OpenSource unterstützen
"I know I can't hold the hate inside my mind
cause what consumes your thoughts controls your life"
- Creed
renee
 2006-08-02 09:26
#34570 #34570
User since
2003-08-04
14371 articles
ModeratorIn
[Homepage] [default_avatar]
Wenn ich die Doku richtig verstanden habe, solltest Du so eine Abfrage auf einzelne Spalten machen können:
Code: (dl )
1
2
3
4
5
6
    my $kundenrs = $db->resultset('Kunde')->search(undef,
{columns => ['name','vorname']});

while (my $test = $kundenrs->next) {
print $test->name .', '. $test->vorname. " ";
}
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
<< >> 2 entries, 1 page



View all threads created 2006-08-02 02:21.