Profile for Ian Stirk > Reviews

Personal Profile

Content by Ian Stirk
Top Reviewer Ranking: 44,047
Helpful Votes: 53

Learn more about Your Profile.

Reviews Written by
Ian Stirk (London)

Show:  
Page: 1 | 2 | 3 | 4
pixel
Field Guide to Hadoop: An Introduction to Hadoop, Its Ecosystem, and Aligned Technologies
Field Guide to Hadoop: An Introduction to Hadoop, Its Ecosystem, and Aligned Technologies
by Kevin Sitto
Edition: Paperback
Price: £26.50

5.0 out of 5 stars Get the current state of Hadoop's components, 22 April 2015
Hi,

I have written a detailed chapter-by-chapter review of this book on www DOT i-programmer DOT info, the first and last parts of this review are given here. For my review of all chapters, search i-programmer DOT info for STIRK together with the book's title.

This slim book sets out to provide an up-to-date overview of Hadoop and its various components, which seems a worthwhile aim.

Hadoop is the most common platform for storing and analysing big data. This book aims to be a short introduction to Hadoop and its various components. The authors compare this to a field guide for birds or trees, so it is broad in scope and shallow in depth. Each chapter briefly covers an area of Hadoop technology, and outlines the major players. The book is not a tutorial, but a high-level overview, consisting of 132 pages in 8 chapters.

For each component, details are listed for:
* License – much is open source but there may be some conditions
* Activity – how much development work is being done on the product
* Purpose – what the technology does Official Page – home page of the technology
* Hadoop Integration – the technology’s level of integration with Hadoop

Below is a chapter-by-chapter exploration of the topics covered.

Chapter 1 Core Technologies

The chapter opens with a bit of history. The origins of Hadoop can be traced back to a project called Nutch, which stored large amounts of data, together with 2 seminal papers from Google – one relating to the Google File System, and the other about a distributed programming model called MapReduce. The ideas in the papers were incorporated into the Nutch project, and Hadoop was born. Yahoo! began using Hadoop for its search engine, and now Hadoop is the premier platform for processing big data.

Hadoop consists of 3 primary resources:
* Hadoop Distributed File System (HDFS) – where you store data. This is optimized for high performance, is read-intensive, and provides resilience by holding multiple copies of the data on different machines. A large block size optimizes data movement.
* MapReduce – involves 2 components: mappers that analyze chunks of data, and reducers which aggregate the results of the mappers.
* Hadoop’s tools – other components, as described in this book

This was an interesting chapter, laying the groundwork for the rest of the book, identifying what Hadoop is, its major components, and how they work. Helpful links to tutorial information are provided, together with outline code examples (as they are throughout the book).

Perhaps some emphasis could have been given to describing the attributes of big data (i.e. volume, velocity and variety) that require a system like Hadoop to process it. I’m not sure why Spark was included in this core section.
.
.
.
Conclusion

This book is very broad in scope, and by necessity (since it’s a field guide), shallow in depth. It provides up-to-date but limited detail on the major components of the Hadoop big data system. Helpful links are provided for further information.

The book is mostly easy to read, with a consistent layout of content (i.e. License, Activity, Purpose, Official Page, Hadoop Integration, description, tutorial link, and simple example code). Useful comparisons between tools are occasionally provided.

This book should prove helpful to managers, developers, and architects, which are new to big data and want a quick overview of the major components of Hadoop.

Most Hadoop books discuss some of the components listed here, but this book contains a much wider range of components than other books. That said, there are omissions, including:
* Hue - a popular web-based tool providing centralised access to many underlying Hadoop tools (e.g. Sqoop, Hive, Pig, Oozie, HBase, ZooKeeper, Impala, HDFS etc)
* Impala – a fast parallel processing SQL query engine for Hadoop

The authors intend to update this book regularly (every year or two), which is ideal if you want to know about the current popular components, and especially good if you have access to safari online (but bad if you need to keep buying the updated book).

Where should you go next after reading this book? I would suggest gaining some detail by reading Big Data Made Easy, which I recently reviewed.

If you’re new to big data and Hadoop, and you want to quickly review what it is, and the current state of its major components, I highly recommend this small book.


T-SQL Querying (Developer Reference)
T-SQL Querying (Developer Reference)
by Itzik Ben-Gan
Edition: Paperback
Price: £29.59

5.0 out of 5 stars Gives a deeper understanding of T-SQL features, with an emphasis throughout on performance., 13 April 2015
Hi,

I have written a detailed chapter-by-chapter review of this book on www DOT i-programmer DOT info, the first and last parts of this review are given here. For my review of all chapters, search i-programmer DOT info for STIRK together with the book's title.

This book from SolidQ aims to give you a deeper understanding of T-SQL functionality. With an emphasis throughout on performance, how does it fare?

This book is both an update to, and a combination of, three previous books (T-SQL Querying – published 2009, T-SQL Programming -2009, and T-SQL Using Window Functions - 2012). New material from SQL Server 2012 and 2014 is discussed, including: Window Functions, the new cardinality estimator, sequences, columnstore technology, and in-memory OLTP. It comes from SolidQ and is written by some of the most respected names in the world of SQ Server.

Aimed primarily at developers and administrators, it offers a detailed view of internal architecture and a comprehensive programming reference. It aims to provide a practical approach together with techniques to optimize code. This is not a book for the beginner, it assumes at least one year's solid experience of T-SQL programming, and tuning basics.

Below is a chapter-by-chapter exploration of the topics covered.

Chapter 1 Logical query processing

This chapter opens with an observation about experts - they build their knowledge upon a solid understanding of the basics. So this chapter starts with a look at the basics, logical query processing i.e. the logical order the various parts of a T-SQL statement are executed. Each step is discussed in detail, these steps are:

1. FROM phase (include virtual table for each of the possible types of join)
2. WHERE phase (can’t use column aliases here – SELECT not yet applied)
3. GROUP BY phase (nulls considered equal here)
4. HAVING phase (filter applied to GROUP BY)
5. SELECT phase (2 steps: evaluate expressions then apply distinct clause)
6. ORDER BY phase
7. Apply the TOP or OFFSET-FETCH filter

The chapter continues with a look at further aspects of logical query processing, including table operators (join, apply, pivot, unpivot), windows functions (work with set of data per underlying row, use OVER clause) and UNION, EXCEPT, and INTERSECT operators.

This chapter provides instructive detail on the logical order that the various parts of a T-SQL statement are executed. Helpful examples are provided to illustrate the points made. The discussions are easy to read. Plenty of useful tips are provided along the way (e.g. a CASE expression with no ELSE clause has an implicit ELSE NULL). Useful links to other chapters in this book and to various websites are provided. All these points apply to the whole book.
.
.
.
Conclusion

This book aims to give you a deeper understanding of T-SQL features, with an emphasis throughout on performance. It is an amalgamation and update of 3 previous well-respected books.

All the topics are explained in a very readable and interesting manner. Throughout, there are helpful explanations, screenshots, practical code examples, inter-chapter references, and links to websites for further information. Where possible, references to performance improvements are included. Additionally, there are plenty of useful incidental side tips. Although primarily intended for SQL Server 2014 and 2012, much of the content is applicable to earlier (and probably later) versions too.

This book is not for the beginner. It teaches advanced SQL concepts and techniques, it should take your understanding of T-SQL from around 4 to around 8. It is an ideal follow-on from Ben-Gan’s “Microsoft SQL Server 2012 T-SQL Fundamentals”, which I recently reviewed.

The book does have omissions, and this is to be expected, otherwise it would run into several volumes. I would have liked to have seen a section on websites/newsletters that would improve your T-SQL understanding. I would have also liked to have seen some discussion of Big Data and its implications. Then there’s the perennial problem of book updates, it would be helpful to know what is new compared to previous editions of the book (this should be easier in the digital world). That said, in the broader context, these are really minor points.

If you want a more advanced understanding of T-SQL features, together with the latest performance techniques, written by some of the best SQL educators, I can highly recommend this excellent book.


Big Data Made Easy: A Working Guide to the Complete Hadoop Toolset
Big Data Made Easy: A Working Guide to the Complete Hadoop Toolset
by Michael Frampton
Edition: Paperback
Price: £26.50

5.0 out of 5 stars An easy way to learn big Data via Hadoop and it tools, 23 Mar. 2015
Hi,

I have written a detailed chapter-by-chapter review of this book on www DOT i-programmer DOT info, the first and last parts of this review are given here. For my review of all chapters, search i-programmer DOT info for STIRK together with the book's title.

This book sets out to be "A Working Guide to the Complete Hadoop Toolset" and is both wide ranging in content, and practical in its approach. Michael Frampton assumes some knowledge of Linux and SQL (but only a little), and no knowledge of Hadoop or its tools.

There is a step by step approach to tool download, installation, execution, and error checking. The following areas of functionality and associated tools are covered:

*Hadoop installation (version 1 and version 2)
*Web-based data collection (Nutch, Solr, Gora, HBase)
*Map Reduce programming (Java, Pig, Perl, Hive)
*Scheduling (Fair and Capacity schedulers, Oozie)
*Moving data (Hadoop commands, Sqoop, Flume, Storm)
*Monitoring (Hue, Nagios, Ganglia)
*Hadoop cluster management (Ambari, CDH)
*Analysis with SQL (Impala, Hive, Spark)
*ETL (Pentaho, Talend)
*Reporting (Splunk, Talend)

Below is a chapter-by-chapter exploration of the topics covered.

Chapter 1: The Problem with Data
This chapter opens with a review of what big data is – data that can’t be stored and processed in the required timeframe using traditional methods (e.g. relational databases). It is typically defined in terms of the 3Vs (i.e. volume, velocity and variety).

Various attributes of big data are discussed, including: massive scalability, commodity and cost-effective hardware, ability to recover from hardware failure, and parallel processing.
Increasing amounts of data are being created and stored. Big data processing typically starts with high terabyte amounts of data, however big data can also be applicable to smaller systems which grow. Examples of high volume data generators are given, including the Large Hadron Collider which produces 15PB of detector data per year. The chapter ends with an overview of the rest of the book.

This is a useful opening chapter, defining what big data is, its attributes, and the problems it solves. It helpfully explains the book’s practical approach i.e. introduce a tool, show how to obtain it, how to install it, and show example usage. There’s a very useful overview of each subsequent chapter.
.
.
.
Conclusion

This book provides a broad and practical introduction to big data, using Hadoop and its many tools. It gives comprehensive step by step instructions on how to download, install, configure, and run the various tools - additionally, common errors are explained and solutions proposed.

The book is easy to read, with helpful explanations, screenshots, listings, outputs, and a logical flow between the sections and chapters. There are good links between the chapters, and to websites containing further information. It also steps back and puts what’s being discussed into the larger context of big data. The book will certainly give you more confidence in the topic.

It should be noted that there is much more information available on all the tools discussed, however this book is a great starting point, and it does an excellent job of introducing the many tools in an easily understandable manner. This is perhaps the book to read before the more specific or advanced books (e.g. “Hadoop: The Definitive Reference” - the new edition of which is out in April 2015, look out for its review soon.)

If I have one concern, it relates to who will use the whole book. This book contains both admin and development sections, however large companies typically separate out their admin and development teams.

If you want a useful working introduction and overview of the current state of big data, Hadoop and its associated tools, I can highly recommend this very instructive book.


MS SQL, T-SQL, and SQL Server Interview Questions: Hundreds of Questions, Responses, and Explanations
MS SQL, T-SQL, and SQL Server Interview Questions: Hundreds of Questions, Responses, and Explanations
Price: £1.99

4.0 out of 5 stars Quickly revise typical SQL questions and answers, 2 Mar. 2015
Verified Purchase(What is this?)
Hi,

I have written a detailed chapter-by-chapter review of this book on www DOT i-programmer DOT info, the first and last parts of this review are given here. For my review of all chapters, search i-programmer DOT info for STIRK together with the book's title.
This book aims to help you succeed in a SQL developer interview, how does it fare?

This book covers interview questions that relate to the role of a SQL developer, with a bias towards a Microsoft
environment. Available only as a low-cost Kindle ebook, it consists of eight short chapters, and two appendices. The book covers both technical and soft skill questions.

Below is a chapter-by-chapter exploration of the topics covered.

Chapter 1 SQL Server Questions
This chapter contains questions largely related to the SQL Server environment. Areas covered include: converting flat files to a relational database, port numbers, SQL Profiler, BCP, SQL injection, storing user names and passwords. Example questions include:
• What is SQL Server?
• What is a relational database?
• What is SQL Profiler?
• What is BCP?
The answers to the questions are typically quite terse. You will not be able to use this book to learn the subject detail, because the answers are much too short. However, if you know the subject already, the questions (and answers) do provide useful examples/starting points of what to expect at an interview. Additionally, the questions might highlight some of your weaker areas of knowledge that need further attention.
.
.
.
Conclusion
This book aims to help you pass an interview for a SQL Developer. It provides plenty of basic SQL questions, and terse answers, perhaps too terse. If you already know the topics discussed, then the questions and answers are good starting points to expand upon. Most of the questions are relatively basic, but don’t cover all basic areas (e.g. Common Table Expressions are not mentioned).

The book could be improved by including more questions, providing more detailed answers, and by asking and answering more open technical questions (e.g. what troubleshooting techniques have you used? What do you do if a query suddenly runs slowly?).

Overall, I enjoyed this book, but that might be because I like answering questions! The book should be useful for SQL developers who already know the topics, and want to quickly revise some typical questions and answers – but don’t expect to learn too much. If you don’t know all the answers, the book will highlight the topics you should focus on.


Google Search Complete!: Tips, Tricks and Shortcuts for  Better Searches and Better Results
Google Search Complete!: Tips, Tricks and Shortcuts for Better Searches and Better Results
by Kirk Paul Lafler
Edition: Paperback
Price: £9.02

4.0 out of 5 stars Is this what you're looking for?!, 13 Feb. 2015
Verified Purchase(What is this?)
Hi,

I have written a detailed chapter-by-chapter review of this book on www DOT i-programmer DOT info, the first and last parts of this review are given here. For my review of all chapters, search i-programmer DOT info for STIRK together with the book's title.

This book aims to help you perform better Google searches to achieve better query results, how does it fare?

Most of us spend a fair amount of time searching the Internet, so knowing how to do this more effectively should prove very helpful. This short book (180 pages, spread over eleven chapters), provides tips, tricks and shortcuts for better searches using the most popular search engine, Google. This book is suitable for the beginner onwards, starting off with basic tips before moving onto more advanced topics.

Below is a chapter-by-chapter exploration of the topics covered.

Chapter 1 Speed, Accuracy, Organization and Reliability

The chapter opens with a look at the book’s main purpose: performing better searches for better results. This is followed with a brief look at how Google gathers, indexes and stores data. Your search terms are then used to query this data. Until recently the PageRank algorithm was used to query the data, this algorithm used more than 200 parameters. PageRank was replaced by the Hummingbird algorithm, this has various additional features including discovery and knowledge graphs.

The chapter reiterates the mantra “better search = better results”, and that better searches are possible with the rules, tips and tricks given in this book. The chapter ends with a look at a “Search Plan”, this is a form containing questions, which when completed should provide you with the words needed for a better search.

The chapter contains a good overview of how Google captures, indexes and stores data. And how that data is queried using Google’s algorithms.
.
.
.
Conclusion

Most of us spend plenty of time searching for information, it’s an important topic, so a book that can teach us how to get better search results should be a worthwhile investment of time and effort.

For the novice and intermediate level Google searcher, this book should prove very helpful, containing plenty of tips, tricks, shortcuts, and examples covering many areas – to give you better results from better search queries.

The book lacks flow within many chapters, sections are not introduced or put into context, they just appear (e.g. almost all the examples sections are not introduced). Voice search, the Google toolbar, or Google’s Search Help are not discussed.

While this book is suitable for most beginner and intermediate level Google searchers, I suspect some readers might prefer the more concise approach given in Google’s own Search Help Center. https://support.google.com/websearch/.


SQL Server 2014 Backup and Recovery
SQL Server 2014 Backup and Recovery
by Tim Radney
Edition: Paperback
Price: £5.55

4.0 out of 5 stars Instructive overview of SQL Server’s backup and restore options, 10 Feb. 2015
Verified Purchase(What is this?)
Hi,

I have written a detailed chapter-by-chapter review of this book on www DOT i-programmer DOT info, the first and last parts of this review are given here. For my review of all chapters, search i-programmer DOT info for STIRK together with the book's title.

This book aims to give you a strong understanding of SQL Server’s backup and restore functionality, how does it fare?

This is a short book, consisting of around 150 pages, divided into 11 chapters. This book is aimed at the beginner or mid-level DBA, and assumes only some basic T-SQL skills.

Backup and recovery are the most important topics for many DBAs, so it’s paramount to have an excellent understanding of them. Being involved in a recovery after a crash can be a stressful event, so it makes sense to learn and practise the subject under less troublesome circumstances (ideally using an up-to-date step-by-step document that anyone with an understanding of SQL Server could implement).

Below is a chapter-by-chapter exploration of the topics covered.

Chapter 1 SQL Server Database Files

This chapter opens with at look at the underlying files that make up a SQL Server database i.e. a primary data file (.MDF), zero or more secondary data files (.NDF), and a log file (.LDF). Data is stored in 8K pages, and 8 pages make up an extent.

The chapter then discusses, in outline, the different types of backup:
*Full – backup of the whole database
*Differential – backup of the data changed since the last full backup
*Copy – backup of the whole database, without interfering with the backup strategy
*Transaction log – backup of transactions since the last transaction log backup

Each chapter ends with useful summary, points to ponder, and review quiz sections. There are useful diagrams and links to other chapters in the book.

I had problems with several aspects of this chapter, which is unfortunate because the rest of the book mostly doesn’t have these problems. Problems included:
*Uses terms before they are defined, including unnecessary material, some awkward analogies, and some bad logic/arguments
*p11 talks about moving a row from the leads table to the customer table, later p26 suggests a row in the leads table can convert from ‘new’ to ‘customer’ (in leads table) - this information is unnecessarily confusing, it would be better to omit it
*Giving a File Backup as a type of SQL Server backup, this is confusing, and unnecessary

Maybe it would have been better to stick to the point, but don’t be put off, the remainder of the book is clearer.
.
.
.
Conclusion

This book aims to give you a strong understanding of SQL Server’s backup and restore functionality. It is generally: easy to read, has useful step-by-step walkthroughs, helpful diagrams, and good links between chapters. The end of each chapter contains a helpful summary, points to ponder, and a review quiz. Much of the material is applicable to earlier versions of SQL Server too. The book is relatively cheap in price, so cost should not be a consideration in understanding this important topic.

This small book contains good base material, but much more information could have been provided, especially if you want a strong understanding. The book reads much better if you already know the subject matter. Parts of Chapter 1 should be rewritten.

Overall, this is an instructive overview of SQL Server’s backup and restore options, a very important topic.


Soft Skills: The software developer's life manual
Soft Skills: The software developer's life manual
by John Sonmez
Edition: Paperback
Price: £21.99

5.0 out of 5 stars Improve your soft skills, become a better developer/person, 30 Jan. 2015
Hi,

I have written a detailed chapter-by-chapter review of this book on [...], the first and last parts of this review are given here. For my review of all chapters, search i-programmer DOT info for STIRK together with the book's title.

This book aims to make you the most successful software developer you can be – by enhancing your non-technical soft skills, how does it fare?

This book consists of 71 short chapters (each around 6 pages long), arranged into 7 sections, covering a wide range of non-technical skills that aims to make you a more successful developer. The sections cover: career, marketing yourself, learning, productivity, financial, fitness, and spirit.

Since the book covers many topics, the purpose of this review is to give you a taste of the topics covered. Below is a section by section exploration of the topics covered.

Section 1 Career

This is the largest section of the book, and probably considered the most important for many readers. The topics covered include:
Chapter 3. Thinking about the future: What are your goals?

Chapter 5. Hacking the interview
Chapter 9. Climbing the corporate ladder
Chapter 12. Freelancing: Going out on your own
Chapter 18. Don’t get religious about technology

The section opens with the suggestion that the best time for making plans is now, specify some big goals, give them a timeframe, and break them down into achievable pieces of work. Interview advice includes getting the interviewer to like you, emphasising your ability to work independently, and knowing where to go for answers.

It’s suggested that developers should specialize, e.g. the title “Java developer” is too general, becoming specialized does mean there are less jobs for you to apply for, but you should have a better chance of getting one of the specialized jobs. To improve your chances of career progression, it’s suggested you take on more responsibility, other suggestions include: becoming a mentor, become more visible, and offer presentations.
.
.
.
Conclusion

This book is wide ranging in scope, easy to read, asking questions for the reader to consider, and presenting the author’s thoughts and experiences. The book has good links between chapters, other books, and websites (even if the most common website is the author’s own blog). The book is written by a life coach, and this can be seen in the topics covered. Each chapter ends with a short “Taking action” section - which suggests what you should do next to get the most out of the chapter.

The whole book is largely about people skills, and suggests ways your relationships can be improved to make you more successful. In many ways this book is an amalgamation of various motivational and self-help books. It contains questions that many software developers and others have undoubtedly asked themselves. I suggest you look at the table of contents and free chapters on the manning.com website to see if you like the content and style of writing. You don’t need to agree with everything the author says, but I suspect it will certainly get you thinking.

I was surprised the book didn’t cover the importance of sleep, contentment, happiness, and the different meanings of the word ‘success’. Additionally, perhaps something could have been written about the philosophy of happiness without having lots of money.

This book aims to make you the most successful software developer you can be – by enhancing your non-technical soft skills. Following the advice given in this book will certainly improve your chances of becoming successful. The book is applicable to a much wider audience than software developers. In summary, I can highly recommend this very interesting book.


Beginning T-SQL
Beginning T-SQL
by Kathi Kellenberger
Edition: Paperback
Price: £29.50

1 of 1 people found the following review helpful
5.0 out of 5 stars Explains the subject in a manner that is very easy to learn from – precisely what’s needed for the beginner., 14 Jan. 2015
This review is from: Beginning T-SQL (Paperback)
Hi,

I have written a detailed chapter-by-chapter review of this book on www DOT i-programmer DOT info, the first and last parts of this review are given here. For my review of all chapters, search i-programmer DOT info for STIRK together with the book's title.

This book aims to teach you the basics of T-SQL, while emphasizing the importance of best practices and performance, how does it fare?

This book is aimed at the beginner, assuming little or no experience of T-SQL. It aims to introduce you to T-SQL programming, and at the same time introduce best practices, sound coding techniques, and performance considerations.

Below is a chapter-by-chapter exploration of the topics covered.

Chapter 1: Getting Started
When starting to learn a new topic, getting started is perhaps the most important step, if this is not done correctly progress can abruptly stop and frustration abound.

The chapter starts with a helpful step-by-step walkthrough on installing SQL Server Express. A useful download link is provided, together with reassuring words that although the download page may change, you will be able to find the downloadable file to install. There’s a useful link that provides details of the different versions of SQL Server, together with the features each supports.

Installation and use of Books Online (BOL) is then discussed. As you progress with T-SQL you’ll find BOL an invaluable reference source. Next, the installation of sample databases is shown – this is very helpful if you want to follow along with the code examples and chapter exercises.

The chapter ends with a look at SQL Server Management Studio (SSMS), this is the environment where T-SQL developers spend most of their time, so it makes sense get familiar with it early.

This chapter provides everything you need to get started with SQL Server from a T-SQL developer’s perspective. Everything is explained in an easily understandable manner, and reassurance provided where necessary. The chapter contains useful links to other chapters and websites, good screenshots, and instructive step-by step walkthroughs (all these things are done throughout the book).
.
.
.
Conclusion
This book aims to provide an introduction to T-SQL, with an emphasis on best practices and performance. It tackles these objectives in a clear manner, providing helpful discussions, relevant example code, and useful screenshots. Each chapter ends with a series of exercises and worked example solutions that will enable you to check and expand further on what has been learned.

Since the book is introductory, in many ways it is version independent. Although aimed at SQL Server 2014, most of it will be applicable to earlier (and later) versions. In addition to being instructive, the examples provided can be used later to check syntax, and form the basis of your own T-SQL code.

Perhaps the overriding impression I have of this book is, it explains the subject in a manner that is very easy to learn from – precisely what’s needed for the beginner. If you’re new to T-SQL, I can highly recommend this very instructive book to start your journey.


Microsoft SQL Server 2014 Query Tuning & Optimization
Microsoft SQL Server 2014 Query Tuning & Optimization
by Benjamin Nevarez
Edition: Paperback
Price: £33.99

5.0 out of 5 stars Performance tuning using the Query Processor - interesting, 16 Dec. 2014
Hi,

I have written a detailed chapter-by-chapter review of this book on www DOT i-programmer DOT info, the first and last parts of this review are given here. For my review of all chapters, search i-programmer DOT info for STIRK together with the book's title.

This book aims to give you the tools and knowledge to get peak performance from your queries, how does it fare?

The book covers query tuning and optimization, aiming to give you the tools and knowledge to get peak performance from your queries and applications. The optimizer creates an execution plan, detailing how the query will be fulfilled, the quality of this plan depends on various factors (e.g. database design, indexes available etc). This book looks at the factors that affect the plan, with a view to improving query performance.

The book is aimed at SQL Server professionals, database developers, DBAs, and data architects. It assumes some knowledge of SQL Server, and a familiarity with the SQL language.

Below is a chapter-by-chapter exploration of the topics covered.

Chapter 1 An Introduction to Query Tuning and Optimization

The chapter opens with the idea that the more you know about how SQL Server works, the more you’re in a better position to understand and fix SQL problems.

It continues with a brief look at the major architectural components: the storage engine (controls getting data, concurrency, and integrity), and the relational engine (aka the query processor, this creates a plan, executes the query and returns the results). This chapter provides an overview on how the query processor works.

The query processing process is broken down and its steps discussed, namely:
*Parsing and binding (parsing ensures SQL syntax is valid, binding is mostly name resolution)
*Query optimization:
-Generating candidate execution plans (want good-enough plan. often potentially lots of plans, uses rules and heuristics, there is limited optimization time)
-Assessing the cost of each plan (cost of physical operator [CPU, IO etc] together with estimated rows [cardinality] reflects total cost)
*Query execution and plan caching (execution plan stored in plan cache. Cache checked first to see if plan exists, since optimization can be relatively expensive)

The chapter next focuses on execution plans, their components, and how to read them. They are the primary method of interacting with the query processor. The different formats of the plans are discussed, namely: graphical, XML and text – it is noted the latter will be deprecated. Plans often contain warning messages (e.g. NoJoinPredicate), which are useful indications of perhaps a problematic or suboptimal plan. The ability to obtain the plan from a trace or the plan cache is discussed together with the relevant tool usage. Finally, the use of SET STATISTICS TIME and IO are discussed with examples, providing another useful tuning tool.

This chapter provides a very good overview of how the query processor works (parsing, binding, optimization, execution), as well as providing a useful overview of concepts that are used in the remainder of the book.
There are useful diagrams showing the query processing, and compilation and recompilation processes. There’s some useful code for creating an Extended Events (XE) session for recording plan information.

There’s a useful tip about examining the schema associated with the XML plan to discover any new plan elements (e.g. StatementOptmEarlyAbortReason, NonParallelPlanReason). There is good example code to illustrate the concepts discussed, good links to related chapters, and links to website for further information – is it is throughout the book.
.
.
.
Conclusion

This book aims to give you the tools and knowledge to get peak performance from your queries and applications. It differs from other performance related books by concentrating on the factors that influence the production of a good execution plan, and thus improve performance.

The book is generally easy to read, this is quite an achievement since some of the concepts are deep and undocumented. There are good links between the chapters, helpful website links for further information, good diagrams to support the discussions, and helpful example code to support the assertions made. The appendices should prove very useful. I enjoyed the author’s pragmatic approach e.g. use hints as a last resort, and always test recommendations on your own system.

It might be argued that the book is not as diverse as it could be, since it doesn’t cover all aspects of performance e.g. RAID levels, SQLDIAG, wait stats and queues. I think this misses the point, the book concentrates on those factors that influence the quality of the execution plan. Besides, the additional references provided will cover these other areas.

The book is suitable for intermediate to advanced level DBAs/developers, and should take your level of understanding of performance tuning in general, and the optimizer in particular, from level 5 to 8 or 9. Although the book is primarily for SQL Server 2014, it typically indicates in which version of SQL Server a given feature was introduced, so should prove useful in SQL Server 2012 and 2008.

I enjoyed reading this book. If you spend time troubleshooting performance problems, or you want a deeper understanding of the optimizer and the factors that influence it, I can heartily recommend this excellent book.


App Inventor 2
App Inventor 2
by David Wolber
Edition: Paperback
Price: £24.15

1 of 1 people found the following review helpful
5.0 out of 5 stars The fun way to create Mobile Apps!, 5 Dec. 2014
This review is from: App Inventor 2 (Paperback)
Hi,

I have written a detailed chapter-by-chapter review of this book on www DOT i-programmer DOT info, the first and last parts of this review are given here. For my review of all chapters, search i-programmer DOT info for STIRK together with the book's title.

Do you want to create a mobile app? Or want a gentle introduction to programming? This book aims to help you with both.

A recent leader article in The Economist’s “The World in 2015” magazine says there are currently 2.8 billion Smartphone users in the world, this is expected to rise to 4.5 billion by the end of 2016. Additionally, the market intelligence firm IDC says 85% of phones sold in Q3 2014 (latest figures) use the Android operating system. These figures suggest creating Android mobile apps is potentially very lucrative.

This book assumes no previous programming experience, nor a technology background. It aims to provide an easy introduction to Android mobile development specifically, and programming in general.

The App Inventor environment takes a visual approach to programming, creating apps can be as simple as drag-and-drop components onto the screen area and setting their properties. All work is stored in the cloud, so there are no installation or update problems to contend with. App Inventor was originally created by Google, and then passed to MIT to develop and support.

Below is a chapter-by-chapter exploration of the topics covered.

Chapter 1 HelloPurr
The aim of this chapter is twofold, the first is to introduce the App Inventor environment, and the second is to create a simple app. The HelloPurr app presents an image of a cat, which purrs when stroked, and meows when the phone is shaken.

The chapter opens with a look at the App Inventor environment, which involves browsing to the App Inventor website, where you create a new project. App Inventor is a cloud based tool, with all the work/files stored remotely.

The chapter provides a step-by-step walkthrough of the HelloPurr app, this involves: adding a button to the screen, changing its size, adding an image of a cat to it, adding a sound file (for the cat’s meow sound) and linking it to the cat’s image. All coding is done visually via drag-and-drop of components and changing their properties.

The chapter continues by showing you how to test your app, via your phone, or an emulator. Continuous testing as development proceeds is strongly encouraged. Lastly, the app is packaged so that it can be downloaded to a phone, as a stand-alone app. Various suggestions for extending the app are given, together with a helpful chapter summary (as they are throughout the book).

This chapter provides a gentle introduction to the App Inventor environment, creating, testing and deploying your first app. Useful step-by-step guidance, helpful diagrams and code blocks, and discussions are provided (as they are throughout the book), all make the app creation process easy to understand and follow.

I may be overly critical of this chapter, but in many ways, this is the most important chapter of the book. A key factor in creating an app is understanding the App Inventor environment, get this right and everyone is happy, get it wrong and it can lead to frustration and abandonment! While the book covers most of the steps, there is no mention of having to log into the App Inventor site via a Google account - this should have been included. Useful screenshots should have been provided in the section “Downloading the App to Your Android Device”, rather than rely on just the text. These additions only need to be shown once, and can be referenced throughout the book.
.
.
.
Conclusion
This is a fun book, suitable for people with or without prior programming experience, for ages 10 to 70. It is easy to read, contains plenty of diagrams, good explanations of the underlying concepts, has useful links between chapters, and uses visually appealing colour throughout. Of course if you have some programming skills already, the book becomes even easier to progress through.

The first part of the book provides consistent step-by-step tutorials on how to develop various types of app (e.g. games, quizzes, location-aware apps), which increase in complexity as the book proceeds. Each chapter ends with helpful ideas on how to extend the app, together with a useful summary. The second part of the book consolidates what has been discussed in the tutorials and provides a more technical/reference/programming approach to what has been learnt.

A small number of the figures and code blocks were too small to read easily. It might have been useful to show screenshots of the apps running or being tested. Sometimes there was a problem with hyphenation (words break in awkward places, without hyphenation). A link to the MIT site for documentation would have been useful (i.e. the App Inventor website reference pages)

If you have an idea for your own app, reading this book will help you create it. Following along with the book’s apps (and their extensions) will surely to give you further ideas. The ideas it contains should prove especially useful for teachers. And yes, I created a few apps for myself with this tool.

A free version of all the chapters in the book is available here: www DOT appinventor DOT org/book2, although the authors suggest you buy the book to support their work.

If you want to learn how to create Android mobile apps, and/or want a gentle introduction to programming, I highly recommend this book. Who knows, you might enjoy it so much that it will encourage you to take up a career in programming!


Page: 1 | 2 | 3 | 4