NAME
DBIx::Class::Helper::ResultSet::Explain - Get query plan for a ResultSet
SYNOPSIS
This module mostly makes sense to be used without setting as a component:
use Devel::Dwarn;Dwarn DBIx::Class::ResultSet::Explain::explain($rs)
But as usual, if you prefer to use it as a component here's how:
package MyApp::Schema::ResultSet::Foo;__PACKAGE__->load_components(qw{Helper::ResultSet::Explain});...1;
And then in a script or something:
use Devel::Dwarn;Dwarn $rs->explain;
DESCRIPTION
This is just a handy little tool that gives you the query plan for a given ResultSet. The output is in no way normalized, so just treat it as a debug tool or something. The only supported DB's are those listed below. Have fun!
See "NOTE" in DBIx::Class::Helper::ResultSet for a nice way to apply it to your entire schema.
EXAMPLE OUTPUT FROM SUPPORTED DB's
SQlite
[[0,"Init",0,10,0,undef,0,undef,],[1,"OpenRead",0,3,0,4,0,undef,],[2,"Rewind",0,9,0,undef,0,undef,],[3,"Rowid",0,1,0,undef,0,undef,],[4,"Column",0,1,2,undef,0,undef,],[5,"Column",0,2,3,undef,0,undef,],[6,"Column",0,3,4,undef,0,undef,],[7,"ResultRow",1,4,0,undef,0,undef,],[8,"Next",0,3,0,undef,1,undef,],[9,"Halt",0,0,0,undef,0,undef,],[10,"Transaction",0,0,17,0,1,undef,],[11,"Goto",0,1,0,undef,0,undef,],]
Pg
[["Seq Scan on \"Gnarly\" me (cost=0.00..16.20 rows=620 width=100) (actual time=0.003..0.003 rows=0 loops=1)",],["Planning time: 0.102 ms",],["Execution time: 0.023 ms",],]
mysql
[[1,"SIMPLE","me","ALL",undef,undef,undef,undef,1,100,"",],]
AUTHOR
Arthur Axel "fREW" Schmidt <[email protected]>
COPYRIGHT AND LICENSE
This software is copyright (c) 2024 by Arthur Axel "fREW" Schmidt.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.